(一)スレッドの概念
マルチスレッド1.スレッドの概念マルチスレッドプログラムは低いレベルでマルチタスクの概念を拡張した:1つのプログラムは同時に複数のタスクを実行する.各タスクは、1つのスレッド(thread)マルチプロセスとマルチスレッドの違いと呼ばれます.本質的な違いは、各プロセスが独自の変数セットを持ち、スレッドがデータを共有することです.1.独立したスレッドで1つのタスクを実行する簡単なプロセス:第1:1)タスクコードをRunnableインタフェースを実現したクラスのrunメソッドに移動する;
2)クラスのオブジェクトを作成する.
3)RunnableによってThreadオブジェクトを作成する.
4)スレッドを起動する;
注意:run()メソッドを呼び出すと、同じスレッドプール内のタスクのみが実行されます.Thread.start()メソッドを呼び出し、runメソッドを実行する新しいスレッドを作成する必要があります.
2つ目は、Threadクラスのサブクラスを構築してスレッドを定義し、サブクラスのオブジェクトを構築してstartメソッドを呼び出すこともできます.この方法は、パラレル実行を必要とするタスクの数を実行メカニズムから減らす必要があるため、推奨されていません.多くのタスクがある場合は、スレッドプールを使用してこの問題を解決できます.
public class TestRunnable implements Runnable{
@Override
public void run() {...}
}
2)クラスのオブジェクトを作成する.
Runnable r = new MyRunnable();
3)RunnableによってThreadオブジェクトを作成する.
Thread t = new Thread(r);
4)スレッドを起動する;
t.start();
注意:run()メソッドを呼び出すと、同じスレッドプール内のタスクのみが実行されます.Thread.start()メソッドを呼び出し、runメソッドを実行する新しいスレッドを作成する必要があります.
2つ目は、Threadクラスのサブクラスを構築してスレッドを定義し、サブクラスのオブジェクトを構築してstartメソッドを呼び出すこともできます.この方法は、パラレル実行を必要とするタスクの数を実行メカニズムから減らす必要があるため、推奨されていません.多くのタスクがある場合は、スレッドプールを使用してこの問題を解決できます.