線程不是進程,但其行爲很像進程,線程是比進程更小的執行單位,一個進程在其執行過程當中,能夠產生多個線程,造成多條執行線索。java
1.多線程指的是一個應用程序同時存在幾個執行體,按幾條不一樣的執行線索共同工做的狀況。多線程
2.主線程:main線程線程
3.線程的狀態與生命週期rest
新建——運行——中斷(四種緣由)——死亡
4.線程調度與優先級code
優先級能夠經過setPriority(int grade)方法來調整
1.使用Thread類直接建立線程對象,構造方法爲:對象
Thread(Runnable target)
2.目標對象與線程的關係blog
·目標對象與線程徹底解耦 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);