導航:首頁 > 編程語言 > java開啟線程睡眠

java開啟線程睡眠

發布時間:2023-05-25 02:06:12

java中起一個線程池 每秒開啟3個線程 每個線程睡眠2秒 2秒之後關閉線程 !!!!

classmythreadextendsThread{

privateStringid;

/**
*
*/
publicmythread(Stringid){
//TODOAuto-generatedconstructorstub
this.id=id;
}

@Override
publicvoidrun(){
System.out.println(id+" 正在執行......Time:"+newSimpleDateFormat("yyyy-MM-ddhh:mm:ss").format(newDate()));
try{
this.sleep(2*1000);
}catch(InterruptedExceptione){
e.printStackTrace();
}
System.out.println(id+" 關閉......Time:"+newSimpleDateFormat("yyyy-MM-ddhh:mm:ss").format(newDate()));
}

}
publicstaticvoidmain(String[]args)throwsException{
ThreadPoolExecutortpe=(ThreadPoolExecutor)Executors.newCachedThreadPool();
while(true){
for(inti=0;i<3;i++){
Stringid=UUID.nameUUIDFromBytes((i+"").getBytes()).toString();
tpe.execute(newmythread(id));
}
System.out.println("當前線程數為:"+tpe.getPoolSize());
Thread.sleep(1000);
}

}

Ⅱ JAVA中如何控制線程的啟動與暫停

線程的狀態表示線程正在進行的活動以及在此時間段內所能完成的任務.線程有創建,可運行,運行中,阻塞,死亡五中狀態.一個具有生命的線程,總是處於這五種狀態之一:
1.創建狀態
使用new運算符創建一個線程後,該線程僅僅是一個空對象,系統沒有分配資源,稱該線程處於創建狀態(new thread)
2.可運行狀態
使用start()方法啟動一個線程後,系統為該線程分配了除CPU外的所需資源,使該線程處於可運行狀態(Runnable)
3.運行中狀態
Java運行系統通過調度選中一個Runnable的線程,使其佔有CPU並轉為運行中狀態(Running).此時,系統真正執行線程的run()方法.
4.阻塞狀態
一個正在運行的線程因某種原因不能繼續運行時,進入阻塞狀態(Blocked)
5.死亡狀態
線程結束後是死亡狀態(Dead)

創建線程和啟動線程並不相同,在一個線程對新線程的Thread對象調用start()方法之前,這個新線程並沒有真正開始執行。Thread對象在其線程真正啟動之前就已經存在了,而且其線程退出之後仍然存在。這可以讓您控制或獲取關於已創建的線程的信息,即使線程還沒有啟動或已經完成了。

通常在構造器中通過start()啟動線程並不是好主意。這樣做,會把部分構造的對象暴露給新的線程。如果對象擁有一個線程,那麼它應該提供一個啟動該線程的start()或init()方法,而不是從構造器中啟動它。

結束Java線程
Java線程會以以下三種方式之一結束:

Java線程到達其run()方法的末尾。

Java線程拋出一個未捕獲到的Exception或Error。

另一個Java線程調用一個棄用的stop()方法。棄用是指這些方法仍然存在,但是您不應該在新代碼中使用它們,並且應該盡量從現有代碼中除去它們。

當Java程序中的所有線程都完成時,程序就退出了。

Ⅲ JAVA-關於線程Sleep的問題!

1.在ThreadA 中的run中sleep不會影響System.out.println("Main thread is running....");
2.run方法執行完,線程就結束了

Ⅳ Java線程中的sleep方法作用是啥,啥時候用此方法

sleep(毫秒數)是Thread類的靜態方法。
使用時:Thread.sleep(毫秒數);

如Thread.sleep(1000);該線程睡眠1秒鍾版,之間此線程什權么都不做。
等1秒鍾之後,繼續餘下代碼執行。

不過線程是沒有保證的。也許1秒鍾之後,該線程沒有轉為可運行狀態,也是可能的。

Ⅳ java如何用Runnable實現讓這線程斷斷續續的休眠

R r=new R(); 沒有必要,等於每個R對象運行時就會產生一個新的R對象,好在你沒讓它運行起來版。否則內存遞推權很快就滿了。
talentwei8899說的對,直接使用Thread.CurrentThread.sleep(1000);

休眠的是當前線程。
若想讓進程休眠時間不同,休眠的時間可取個隨機數。

Ⅵ java中如何線程的睡眠與喚醒

classMyThreadextendsThread
{
publicMyThread()
{
super();
}
publicMyThread(Stringname)
{
super(name);
}
publicvoidrun()
{
for(inti=0;i<10;i++)
{
System.out.println(super.getName()+":"+i);
try
{
sleep(500);
}
catch(InterruptedExceptione)
{
System.out.println("線程被叫醒");
}
}
}
}
publicclassSleepTest
{
publicstaticvoidmain(String[]args)
{
MyThreadthread1=newMyThread("第1個線程");
MyThreadthread2=newMyThread("第2個線程");
thread1.start();
thread2.start();
}
}

閱讀全文

與java開啟線程睡眠相關的資料

熱點內容
不用網路載入的單機游戲有哪些 瀏覽:608
數據線插頭怎麼接頭 瀏覽:577
網路載入視頻失敗是怎麼回事 瀏覽:805
傳奇賬號在哪個文件夾里 瀏覽:346
百度app在哪裡安裝 瀏覽:587
如何設置路由器網路不斷網 瀏覽:471
傳到qq群里的文件怎麼刪除 瀏覽:861
索尼安卓71更新日誌 瀏覽:234
怎麼找手機里的垃圾app 瀏覽:540
2015藍橋杯代碼填空 瀏覽:698
安卓資料庫dbexecSQL 瀏覽:227
doc重命名文件格式 瀏覽:728
getscreen截圖工具下載 瀏覽:719
共識數據是什麼時候開始的 瀏覽:96
數碼管顯示電壓程序 瀏覽:479
資料庫文件有哪個 瀏覽:543
途強儲存在哪個文件夾 瀏覽:172
如何恢復被覆蓋文件 瀏覽:611
iphone5用哪個版本最好 瀏覽:327
extjsgrid禁用 瀏覽:426

友情鏈接