日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java多线程常用方法

發布時間:2023/12/13 java 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java多线程常用方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

start()與run()

?? ? ?start() 啟動線程并執行相應的run()方法
? ? ? run() 子線程要執行的代碼放入run()方法

getName()和setName()

?getName() 獲取此線程的名字
?setName() 設置此線程的名字

isAlive()

是判斷當前線程是否處于活動狀態。活動狀態就是已經啟動尚未終止。

currentThread()

返回代碼段正在被哪個線程調用

sleep()

主要的作用是讓當前線程停止執行,把cpu讓給其他線程執行,但不會釋放對象鎖和監控的狀態,到了指定時間后線程又會自動恢復運行狀態

注意:線程睡眠到期自動蘇醒,并返回到可運行狀態,不是運行狀態。sleep()中指定的時間是線程不會運行的最短時間。因此,sleep()方法不能保證該線程睡眠到期后就開始執行

yield()

中文意思:放棄,屈服
一個線程調用yield()意味著告訴虛擬機自己非常樂于助人,可以把自己的位置讓給其他線程(這只是暗示,并不表絕對)。但得注意,讓出cpu并不代表當前線程不執行了。當前線程讓出cpu后,還會進行cpu資源的爭奪,但是能不能再次分配到,就不一定了

?

getPriority()和setPriority(int newPriority)

這兩個方法是用于獲取當前和設置線程的優先級。優先級高的線程得到的cpu多。也就是說,兩個等待的線程,優先級高的線程容易被cpu執行。

默認情況下,線程的優先級是5。線程的優先級分為1~10等級。

getId()

取得線程唯一標識

yield()

yield() 暫停當前方法,釋放自己擁有的CPU,線程進入就緒狀態。

join()

所屬線程對象x正常執行run,當前線程z無限等待直到執行完。常用于需要子線程的執行結果

interrupted()

interrupted()是靜態方法:內部實現是調用的當前線程的isInterrupted(),并且會重置當前線程的中斷狀態

isInterrupted()是實例方法,是調用該方法的對象所表示的那個線程的isInterrupted(),不會重置當前線程的中斷狀態

它們的作用是判斷線程是否是停止狀態

isDaeMon、setDaemon(boolean on)

java線程有兩種,一種是用戶線程,一種是守護線程。守護線程是一個特殊的線程,任何一個守護線程都是jvm中所有非守護線程的保姆。當進程中不存在非守護線程時,守護線程會自動銷毀。典型的守護線程就是垃圾回收線程。

第一個是判斷線程是不是守護線程,第二個是設置線程為守護線程,必須在線程start之前setDaemon(true)。

stop()

強制停止,已廢棄

可能釋放鎖導致數據不對。

可能導致清理工作做不好。

suspend和resume

暫停和恢復

會造成獨占(永遠的暫停)(方法)

造成不同步

?

?

總結

以上是生活随笔為你收集整理的Java多线程常用方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。