21天精通java基礎之Day16線程

Day16:線程

    基本概念:程序,進程,線程

  1、程序(program):是爲完成特定任務、用某種語言編寫的一組指令的集合。即指一段靜態的代碼,靜態對象。

  2、進程(process):是程序的一次執行過程,或是正在運行的一個程序。動態過程:有它自身的產生、存在和消亡的過程。

  3、線程(thread):進程可進一步細化成線程,是一個程序內部的一條執行路徑。

    Thread類:

   1.每個線程都是通過某個特定的Thread對象的run()方法來完成操作的,經常把run()方法的主題成爲線程體。

   2.通過該Thread對象的start()方法來調用這個線程。


    創建一個線程:

   1.創建一個繼承於Thread的子類。
   2.重寫Thread類的run()方法,方法內實現此子線程要完成的功能。
   3.創建一個子類的對象。
   4.調用線程的start():啓動此線程,調用相應的run()方法。


    注意:

   ①一個線程只能夠執行一次start()。

   ②不能通過實現類對象的run()方法來啓動線程。


    Thread的常用方法:

   1.start():啓動線程並執行相應的run()方法。

   2.run():子線程要執行的代碼放入run()方法中。

   3.currentThread():靜態的,調取當前的線程。

   4.getName():獲取此線程的名字。

   5.setName():設置此線程的名字。

   6.yield():調用此方法的線程釋放當前CPU執行權。

   7.join():在A線程中調用B線程的join()方法,表示:當執行到此方法時,A線程停止執行,直到B線程執行完畢,A線程再接着join()之後的代碼執行。

   8.isAlive():判斷該線程是否還存活。

   9.sleep(long l):顯式的讓當前線程睡眠 l 毫秒。

   10.線程通信:①wait()②notif()③notifyAll()

   11.線程的優先級

①MAX_PRIORITY(10);            getPriority():返回線程優先級。

②MIN_PRIORITY(1);               setPriority(int newPriority):改變線程的優先級。

③NORM_PRIORITY(5);           線程創建時繼承父線程的優先級。



    線程的調度:

   1.時間片。

   2.搶佔式:高優先級的線程搶佔CPU。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章