20165320 第八周學習總結
阿新 • • 發佈:2018-04-22
應用程序 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 第八周學習總結