Java 多執行緒

2021-04-02 19:28:31 字數 1022 閱讀 2805

1。thread類和runnable介面

2。主線程:用thread的static thread currentthread()方法獲得

3。通過實現runnable介面建立執行緒:實現runnable介面的run方法。新執行緒在run()方法返回時結束。注意用這種方法建立程序時,在實現runnable介面的類的建構函式裡通常需要用new thread新建乙個執行緒,並用start函式開啟這個執行緒。實質上,start函式執行的就是對run函式的呼叫。如:

class demothread implements runnable

public void run()catch(exception e)

}system.out.println("exit childthread!");}}

public class newthread

system.out.println("exit mainthread!");} }

4。擴充套件(繼承)thread類新建執行緒,如:

public class testthread extends thread

public void run()

}5。主線程一般必須最後結束。isalive()函式判斷乙個執行緒是否已經結束。join()方法可用來等待它呼叫的執行緒終止。

6。執行緒優先順序:get/setpriority方法。

7。同步方法:保證同一時刻只有乙個執行緒訪問方法,在方法定義前面加關鍵字:synchronized。

8。同步語句:將對外部類的方法的訪問置於乙個synchronized塊中。synchronized(object) 其中object是需要同步的物件的引用。

9。執行緒內通訊:為了使用非同步訪問。wait()方法告訴呼叫這個函式的程序放棄監控器並進入睡眠狀態,直到其他程序進入同一監控器並呼叫notify方法。notify方法喚醒第乙個等待同一物件的執行緒。notify方法喚醒所有對同乙個物件呼叫wait()的執行緒,最高優先順序的先執行。

10。暫停、恢復、停止執行緒:不能使用suspend,resume和stop方法。應該用wait和notify方法。

java多執行緒

在網上看到很有意思的問題,摘下來好好看下 在面試的時候被問了乙個多執行緒的問題 回來仔細思考了一下,多執行緒是否真的能提高了效率?我對多執行緒的理解就是 比如挖乙個隧道,有2種開工方法 1 只在山的一頭挖,直至挖到山的另一頭,從而打通隧道,這可以看成是單執行緒 2 在山的兩頭挖,同時開工,最後在山的...

JAVA 多執行緒

為hashmap的不正確使用所導致。hashmap在多執行緒環境下使用不安全。使用靜態hashmap作為聯絡人資料快取,key為手機號碼.private static maplxrdata new hashmap 多執行緒環境下不同步hashmap可能導致如下問題 1 多執行緒put操作後可能導致g...

Java多執行緒

建立任務和執行緒 任務就是物件。為了建立任務,必須首先為任務定義乙個類。任務類必須實現runnable介面。runnable介面非常簡單,它只包含乙個run方法。一旦定義了taskclass,就可以呼叫其構造方法建立乙個任務。taskclass task new taskclass thread t...