java線程筆記

寫這篇博文,無他,就是在看java線程知識時,感覺一些知識點,必須背下,所以就自己複述一下,寫了下來。

      在同步中,需要對含有同步代碼的對象進行鎖定。

先介紹兩個類的一些重要方法:

(Object)  wait 方法,作用:使執行該對象的線程進入該對象的等待隊列中。

@throw  InterrupedException  cause  當執行該對象的線程沒有獲得該對象的鎖時拋出

notes:   而當該線程調用了該方法,則會放棄原先獲得該對象的。(這是一些線程面試,筆試題經常要考的。注意區別該對象,與執行該對象的線程)

notify  ,notifyAll  方法,  作用:喚醒該對象上的等待線程,一般,與wait配對使用。

note:   調用該方法時,如果執行該方法的線程有獲得該對象的鎖,則不會放棄它的鎖。

(Thread) 靜態方法:sleep ,作用:使該線程(sleep方法,所屬的線程),進入睡眠狀態(即,“阻塞”狀態,線程五態中的一種:新建,可運行態,運行中,阻塞狀態,死亡態)。

@throw  InterrupedException

notes: 當該方法被調用時,已在該線程對象(注意,因爲它是Thread的方法,實現線程很大一部分,得繼承Thread類,所以它是線程對象)上鎖,不會被釋放,將會繼續保持。

yield,作用: 使該線程進入可運行態(一般,是從運行態,轉變到可運行態)。

note::  同樣,線程將同樣保持鎖。

final 方法: join,  作用:使當前在執行該行代碼(即調用了這個方法的線程)加入到這個方法所屬的線程的尾部,直到這個方法所屬的線程執行完,纔可以執行。

@throw: InterrupedException

note: 同樣,線程將同樣保持鎖。

setPriority(int priorityInt)  ,作用:設置當前線程的優先級。

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