Java多執行緒是我們很多時候都會用到的,在不斷學習的過程中有很多的應用方法。下面我們就來學習下這些關鍵的方法。希望大家有幫助。首先我們先來看看具體的方法分類。
Java多執行緒程式中常用到的方法有以下幾個:run(),start(),wait(),sleep(),notify(),notifyAll(),yield(),join(),還有一個重要的關鍵字synchronized。下面分別對這些方法進行解釋:
一、run()和start()
這兩個方法應該都比較熟悉,把需要並行處理的程式碼放在run()方法中,start()方法啟動執行緒將自動呼叫run()方法,這是由Java的記憶體機制規定的。且run()方法必須是public存取權限,傳回值類型為void。
二、關鍵字Synchronized
這個關鍵字用於保護共享數據,當然前提是要分清哪些數據是共享數據。每個物件都有一個鎖標誌,當一個執行緒存取該物件時,被Synchronized修飾的資料將被“上鎖”,阻止其他執行緒存取。當前線程訪問完這部分資料後釋放鎖標誌,其他線程就可以存取了。
1.public ThreadTest implements Runnable
2.{
3.public synchronized void run(){
〔145%; { 6. System.out.println(" " + i); 7.} 8.} 9.public static void main(String[] args)〜〜〜〦1. readTest ();
12.Runnable r2 = new ThreadTest();
13.Thread t1 = new Thread(r1);
14.Th ;
16.t2.start();
17.}
18.}
以上這段程序中未起作用的變量並不是共享數據,也就是這裡的關鍵字並未起作用。因為t1,t2兩個執行緒是兩個物件(r1,r2)的執行緒。不同的物件其資料是不同的,所以r1和r2兩個物件的i變數是並不是共享資料。
當把程式碼改成如下:Synchronized關鍵字才會起作用
19.Runnable r = new ThreadTest();
20.Thread ThreadTest();
20.Thread 1 = new Thread( (r);
22.t1.start();
23.t2.start();
以上就是對Java cn)!