8.3 線程控制

線程中斷

方法:void interrupt():中斷線程(本質沒有中斷操作,只是給線程對象加了個標記,設置其中斷狀態(tài)為true);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(不能中斷正在運行過程中的線程,只能中斷阻塞過程中的線程)

? ? ? ? ? ?static boolean interrupted(): 返回當前線程是否已經中斷;

? ? ? ? ? ?boolean isInterrupted():?返回線程是否已經中斷;

線程中斷

線程讓步

作用:用于正在執(zhí)行的線程,在某些情況下讓出CPU資源,讓給其它線程執(zhí)行;

? ? ? ? ? ? (如果持有同步鎖,并不會釋放同步鎖資源)

方法:static void yield():暫停當前正在執(zhí)行的線程對象,并執(zhí)行其他線程

線程讓步

線程睡眠

方法:static void sleep(long millis):讓當前正在執(zhí)行的線程休眠(暫停執(zhí)行)指定的毫秒數(shù);

? ? ? ? ? ?static void sleep(long millis, int nanos):線程休眠 毫秒數(shù)+納秒數(shù);

線程休眠

線程合并

作用:所謂合并,就是等待其它線程執(zhí)行完,再執(zhí)行當前線程,執(zhí)行起來的效果就好像把其它線程合并到當前線程執(zhí)行一樣;

? ? ? ? ? ? (優(yōu)先執(zhí)行調用join方法的線程,最后執(zhí)行當前線程)

方法:void join():等待該線程終止;

? ? ? ? ? ?void join(long millis):等待該線程終止的時間最長為 millis 毫秒;

? ? ? ? ? ?void join(long millis, int nanos):等待該線程終止的時間最長為 millis 毫秒 + nanos 納秒;

線程合并

sleep和wait方法區(qū)別

sleep:1.Thread的方法

? ? ? ? ? ? ?2.讓出CPU,時間到了再回到該線程繼續(xù)執(zhí)行,不會釋放同步鎖資源

? ? ? ? ? ? ?3.任何地方使用

wait:1.Object的方法

? ? ? ? ? 2.釋放同步鎖資源,進入等待隊列,需要notify喚醒(喚醒后只是得到競爭同步鎖的資格) ?

? ? ? ? ? 3.只能在同步方法或同步塊中使用(因為要釋放同步資源鎖)


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Java多線程學習 [-] 一擴展javalangThread類 二實現(xiàn)javalangRunnable接口 三T...
    影馳閱讀 3,108評論 1 18
  • 本文主要講了java中多線程的使用方法、線程同步、線程數(shù)據(jù)傳遞、線程狀態(tài)及相應的一些線程函數(shù)用法、概述等。 首先講...
    李欣陽閱讀 2,597評論 1 15
  • 一、線程的生命周期 線程狀態(tài)轉換圖: 1、新建狀態(tài) 用new關鍵字和Thread類或其子類建立一個線程對象后,該線...
    我是嘻哈大哥閱讀 1,016評論 0 8
  • 一、線程概念 1. 操作系統(tǒng)中的線程現(xiàn)在的操作系統(tǒng)是多任務操作系統(tǒng),多線程是實現(xiàn)多任務的一種方式,在操作系統(tǒng)中,每...
    TyiMan閱讀 1,998評論 1 35
  • 好種子開花: 今天小寶睡都到很晚才醒,讓我難得可以靜靜地坐在沙發(fā)上享受一下個人時光,聽聽舒服的靜心音樂。另外無意中...
    成長中的小蝸牛閱讀 239評論 1 2

友情鏈接更多精彩內容