freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第16章多線程(編輯修改稿)

2024-08-16 07:56 本頁面
 

【文章內(nèi)容簡介】 線程的生命周期 ? 當(dāng)線程處于阻塞狀態(tài)后,可通過以下幾種方式使線程再次進(jìn)入 就緒狀態(tài) 。 ? 線程調(diào)用 notify()方法 。 ? 線程調(diào)用 notifyAll()方法 。 ? 線程調(diào)用 interrupt()方法 。 ? 線程的 休眠時(shí)間結(jié)束 。 ? 輸入 /輸出結(jié)束 。 操作線程的方法 ? 線程的休眠 ? 線程的加入 ? 線程的中斷 ? 線程的禮讓 線程的休眠 ? 一種能控制線程行為的方法是調(diào)用 sleep()方法 , sleep()方法需要一個(gè)參數(shù)用于指定該線程 休眠的時(shí)間 ,該時(shí)間使用毫秒為單位。 ? 它通常是在 run()方法內(nèi)的循環(huán)中被使用。 ? sleep()方法的語法如下: try{ (2022)。 }catch(InterruptedException e){ ()。 } public void run(){ (開始執(zhí)行線程。 )。 (進(jìn)入睡眠狀態(tài)。 )。 try { (3000)。 } catch (InterruptedException e) { ()。 } (線程結(jié)束。 )。 } 線程的加入 ? 如果當(dāng)前某程序?yàn)槎嗑€程程序,假如存在一個(gè)線程 A,現(xiàn)在需要插入線程 B,并要求線程B先執(zhí)行完畢,然后再繼續(xù)執(zhí)行線程 A,此時(shí)可以使用 Thread類中的 join()方法 來完成。 ? 這就好比此時(shí)正在看電視,卻突然有人上門收水費(fèi),必須付完水費(fèi)后才能繼續(xù)看電視。 ? 當(dāng)某個(gè)線程使用 join()方法加入到另外一個(gè)線程時(shí),另一個(gè)線程會(huì)等待該線程執(zhí)行完畢再繼續(xù)執(zhí)行。 線程的加入 ? 為什么要用 join()方法 ?在很多情況下,主線程生成并起動(dòng)了子線程,如果子線程里要進(jìn)行大量的耗時(shí)的運(yùn)算, 主線程往往將于子線程之前結(jié)束 , ?但是如果主線程處理完其他的事務(wù)后,需要用到子線程的處理結(jié)果,也就是 主線程需要等待子線程執(zhí)行完成之后再結(jié)束 ,這個(gè)時(shí)候就要用到 join()方法了。 class Thread1 extends Thread{ private String name。 public Thread1(String name) { =name。 } public void run() { for (int i = 0。 i 3。 i++) { (子線程 +name + 運(yùn)行 : + i)。 try { sleep((int) () * 10)。 } catch (InterruptedException e) { ()。 } } } } public static void main(String[] args) { (().getName()+ 主線程運(yùn)行開始 !)。 Thread1 mTh1=new Thread1(A)。 Thread1 mTh2=new Thread1(B)。 ()。 ()。 (().getName()+ 主線程運(yùn)行結(jié)束 !)。 } main主線程運(yùn)行開始 ! main主線程運(yùn)行結(jié)束 ! 子線程 B運(yùn)行 : 0 子線程 A運(yùn)行 : 0 子線程 B運(yùn)行 : 1 子線程 A運(yùn)行 : 1 子線程 B運(yùn)行 : 2 子線程 A運(yùn)行 : 2 public static void main(String[] args) { … Thread1 mTh1=new Thread1(A)。 Thread1 mTh2=new Thread1(B)。 ()。 ()。 try { ()。 ()。 } catch (InterruptedException e) { ()。 } … } main主線程運(yùn)行開始 ! 子線程 B運(yùn)行 : 0 子線程 B運(yùn)行 : 1 子線程 B運(yùn)行 : 2 子線程 A運(yùn)行 : 0 子線程 A運(yùn)行 : 1 子線程 A運(yùn)行 : 2 main主線程運(yùn)行結(jié)束 ! 線程的中斷 ? 以前使用 stop()方法停止線程,但當(dāng)前版本的 JDK早已廢除了 stop()方法,同時(shí)也不建議使用 stop()方法來停止一個(gè)線程的運(yùn)行。 ? 現(xiàn)在提倡在 run()方法中使用無限循環(huán)的形式,然后使用一個(gè)布爾型標(biāo)記控制循環(huán)的停止。 class ThreadTest extends Thread { private int count = 10。 public void run() { while (true) { (count + )。 if (count == 0) { return。 } } } }
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1