Java多執行緒是我們很多時候都會用到的,在不斷學習的過程中有很多的應用方法大家知道怎麼使用Java多執行緒嗎?以下是小編為大家搜尋整理的如何使用java多執行緒,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!
Java多執行緒程式中經常用到的方法有以下幾個:run(),start(),wait(),sleep(),notify(),notifyAll(),yield(),join(),還有一個重要的關鍵字 synchronized。下面分別對這些方法進行解釋:
一、run()和start()
這兩個方法應該都比較熟悉,把需要並行處理的程式碼放在run()方法中,start()方法啟動執行緒將自動呼叫 run()方法,這是由Java的記憶體機制規定的。並且run()方法必須是public訪問許可權,返回值型別為void。
二、關鍵字Synchronized
這個關鍵字用於保護共享資料,當然前提是要分清哪些資料是共享資料。每個物件都有一個鎖標誌,當一個執行緒訪問該物件時,被Synchronized修飾的資料將被“上鎖”,阻止其他執行緒訪問。當前執行緒訪問完這部分資料後釋放鎖標誌,其他執行緒就可以訪問了。
ic ThreadTest implements Runnable
2.{
ic synchronized void run(){
(int i=0;i<10;i++)
5.{
tln(" " + i);
7.}
8.}
ic static void main(String[] args)
10.{
able r1 = new ThreadTest();
able r2 = new ThreadTest();
ad t1 = new Thread(r1);
ad t2 = new Thread(r2);
t();
t();
17.}
18.}
以上這段程式中的 i 變數並不是共享資料,也就是這裡的`Synchronized關鍵字並未起作用。因為t1,t2兩個執行緒是兩個物件(r1,r2)的執行緒。不同的物件其資料是不同的,所以r1和r2兩個物件的i變數是並不是共享資料。
當把程式碼改成如下:Synchronized關鍵字才會起作用
able r = new ThreadTest();
ad t1 = new Thread(r);
ad t2 = new Thread(r);
t();
t();