1. 程式人生 > >20165320 第八周學習總結

20165320 第八周學習總結

應用程序 isalive 使用 放棄 runnable zed name 原因 time

主要內容

線程與進程

線程不是進程,但其行為很像進程,線程是比進程更小的執行單位,一個進程在其執行過程中,可以產生多個線程,形成多條執行線索。

Java的多線程機制

1.多線程指的是一個應用程序同時存在幾個執行體,按幾條不同的執行線索共同工作的情況。

2.主線程:main線程

3.線程的狀態與生命周期

新建——運行——中斷(四種原因)——死亡

4.線程調度與優先級

優先級可以通過setPriority(int grade)方法來調整

Thread類與線程的創建

1.使用Thread類直接創建線程對象,構造方法為:

Thread(Runnable target)

2.目標對象與線程的關系

·目標對象與線程完全解耦
String name = Thread.currenThread().getName();
·目標對象組合線程(弱耦合)
Thread.currentThread();

3.關於run方法的啟動次數

run方法有可能被中斷
waterAmount = waterAmount-m;

線程的常用方法

1.start():啟動線程

2.run():線程被調用之後的執行操作

3.sleep(int millsecond):放棄CPU資源

4.isAlive():返回狀態

5.currentThread():返回使用的CPU資源

6.interrupt():吵醒休眠的線程

線程同步

機制:當一個線程使用synchronized方法時,其它線程想使用的時候必須等待。

協調同步的線程

運用wait()方法中斷線程的執行,使本線程等待,暫時讓出CPU的使用權。

線程聯合

一個線程A在占有CPU的期間,可以讓其它線程調用join()和本線程聯合。

B.join();
A在運行期間聯合了B。

計時器線程與守護線程

java提供了一個很方便的Timer類,該類在javax.swing包中。

計時器創建後,使用Timer類的方法start()啟動計時器,使用stop()停止計時器,使用restart()重新啟動計時器。

調用void setDaemon(boolean on)方法可以將自己設置成一個守護線程

thread.setDaemon(true);

腳本運行截圖

技術分享圖片

20165320 第八周學習總結