Java マルチスレッドは私たちが非常に頻繁に使用するものであり、継続的な学習の過程で多くの応用方法が存在します。以下でこれらの主要な方法を学びましょう。お役に立てれば。まずは具体的な手法の分類を見てみましょう。
Java マルチスレッド プログラムで一般的に使用されるメソッドには、run()、start()、wait()、sleep()、notify()、notifyAll()、yield()、join() などがあります。は同期する重要なキーワードです。これらのメソッドについては以下で説明します:
1. run() と start()
これら 2 つのメソッドはよく知られているはずで、並列処理が必要なコードを run() メソッドに置き、start() メソッドがスレッドを開始します。 run() メソッドは自動的に呼び出されます。これは Java のメモリ メカニズムによって指定されます。また、run() メソッドにはパブリック アクセス権限が必要で、戻り値の型は void です。
2. Keyword Synchronized
このキーワードは、もちろん、どのデータが共有データであるかを区別するために使用されます。各オブジェクトにはロック フラグがあり、スレッドがオブジェクトにアクセスすると、Synchronized によって変更されたデータは「ロック」され、他のスレッドがアクセスできなくなります。現在のスレッドがデータのこの部分にアクセスすると、ロック フラグが解放され、他のスレッドがそれにアクセスできるようになります。
1.public ThreadTestimplements Runnable
2.{
3.public synchronized void run(){
4.for(int i=0;i<10;i++)
5.{
6. System.out.println(" " + i);
7.}
8.}
9.public static void main(String[] args)
10.{
11.Runnable r1 = new ThreadTest ();
12.Runnable r2 = new ThreadTest();
13.Thread t1 = new Thread(r1);
14.Thread t2 = new Thread(r2);
15.t1.start() ;
16.t2.start();
17.}
18.}
上記のプログラムの i 変数は共有データではありません、つまり、ここでの Synchronized キーワードは機能しません。 2 つのスレッド t1 と t2 は 2 つのオブジェクト (r1、r2) のスレッドであるためです。オブジェクトが異なればデータも異なるため、2 つのオブジェクト r1 と r2 の i 変数はデータを共有しません。
コードを次のように変更すると Synchronized キーワードが機能します
19.Runnable r = new ThreadTest();
20.Thread t1 = new Thread(r);
21.Thread t2 = new Thread (r);
22.t1.start();
23.t2.start();
上記はJavaマルチスレッドの詳細な紹介です。その他の関連記事については、PHP中国語に注目してください。ウェブサイト (www.php.cn)!