撩妹方式,你值得擁有!!

2021-09-24 20:28:43 字數 1534 閱讀 4766

執行緒的狀態

1.new:新建狀態。就是物件剛被new出,還有start()。

2.runnable:可執行狀態。呼叫start(),此時執行緒就是runnable狀態,可能正在執行也可能沒有執行(取決於作業系統提供的執行時間)。

3.blocked:阻塞狀態。

4.waiting:等待狀態。執行緒暫時不活動,並且不執行任何**,這此時執行緒消耗資源最小,直到執行緒排程器重新啟用。

5.time waitiing 超時等待裝填。        ps:和wating 狀態的區別是它可以在指定的時間自行返回。

6.terminated:終止狀態。表示當前執行緒已經執行完畢。        

ps:1.run方法執行完畢正常退出;    2.沒有捕獲異常而終止run方法,執行緒終止。

sleep() 

sleep()方法需要指定等待的時間,進入阻塞狀態,讓其他同優先順序或者高優先順序的執行緒得到執行的機會,

也可以讓低優先順序的執行緒得到執行機會。

注:sleep()方法不會釋放「鎖標誌」,也就是說如果有synchronized同步塊,其他執行緒仍然不能訪問共享資料。 

wait() 

wait()、notify()及notifyall(),這三個方法用於協調多個執行緒對共享資料的訪問,必須在synchronized語句塊內使用,呼叫wait(), notify()和notifyall()的任務在呼叫這些方法前必須擁有物件的鎖。注意,它們都是object類的方法,而不是thread類的方法。 

注:wait()方法會釋放物件的「鎖標誌」。當呼叫某一物件的wait()方法後,會使當前執行緒暫停執行,並將當前執行緒放入物件等待池中,直到呼叫了notify()方法後,將從物件等待池中移出任意乙個執行緒並放入鎖標誌等待池中,只有鎖標誌等待池中的執行緒可以獲取鎖標誌, 它們隨時準備爭奪鎖的擁有權。當呼叫了某個物件的notifyall()方法,會將物件等待池中的所有執行緒都移動到該物件的鎖標誌等待池。 

除了使用notify()和notifyall()方法,還可以使用帶毫秒引數的wait(long timeout)方法,效果是在延遲timeout毫秒後,被暫停的執行緒將被恢復到鎖標誌等待池。 

此外,wait(),notify()及notifyall()只能在synchronized語句中使用,但是如果使用的是reentrantlock實現同步時使用reentrantlock.newcondition()獲取乙個condition類物件,然後condition的await(),signal()以及signalall()分別對應上面的三個方法。

yield() 

yield()方法和sleep()方法類似,也不會釋放「鎖標誌」,區別在於,它沒有引數,即yield()方法只是使當前執行緒重新回到可執行狀態,所以執行yield()

的執行緒有可能在進入到可執行狀態後馬上又被執行,另外yield()方法只能使同優先順序或者高優先順序的執行緒得到執行機會,這也和sleep()方法不同。

join() 

join()必須等被呼叫執行緒結束後才能返回。

Mock Vue 你值得擁有

好久沒寫隨筆了,最近難得抽得半日閒,搞一手前後分離介面除錯,很舒服,今天介紹一下乙個很有誠意的工具 mock 官網點我 園友精彩博文點我 csdn精彩博文點我 簡單的說,mock的作用就是攔截ajax請求,把假的資料傳入 函式中,在後端介面還未開發完成的時候,前端就已經可以萬事大吉喝茶釣魚去了 好,...

部落格營銷,你值得擁有

從我接觸這門課程起,便對其產生了極其濃厚的興趣。這門課程順應了當今網際網路聯通天下的浪潮,即所謂的萬物互聯。如果學好這門課程,那麼網際網路將會成為我們發展自身的乙個香餑餑。借助網際網路這個平台,我們能夠學習各種電子商務經驗,了解電子商務模式,盈利模式,知道各種搜尋引擎平台,能夠解決這些平台現如今存在...

「黑客」必備書籍 你值得擁有!

如果您想學習黑客並成為道德黑客,那麼這些最好的黑客書籍將帶你走上正軌。學習黑客,如果你是乙個完整的初學者,並不是一件容易的事,雖然網上有很多資源,但是黑客資源往往很少,因此閱讀書籍通常很有幫助。黑客可能會被不道德地使用,還可能對個人和公司造成傷害和破壞。但道德黑客實際上對公司有利,因為他們可以在入侵...