導航:首頁 > 編程語言 > java線程判斷

java線程判斷

發布時間:2022-08-07 22:21:47

A. java 中怎麼判斷某一線程是否運行

可以調用 Thread.isAlive() 判斷, 當然也可以設置一個標記, 在那個線程結束之前設置標記。
/**
* Tests if this thread is alive. A thread is alive if it has
* been started and has not yet died.
* @return <code>true</code> if this thread is alive;
* <code>false</code> otherwise.
*/
Thread.isAlive()

B. Java如何判斷線程池所有任務是否執行完畢

給你一個例子參考下

importjava.util.concurrent.ExecutorService;
importjava.util.concurrent.Executors;

publicclassTest{

publicstaticvoidmain(Stringargs[])throwsInterruptedException{
ExecutorServiceexe=Executors.newFixedThreadPool(50);
for(inti=1;i<=5;i++){
exe.execute(newSubThread(i));
}
exe.shutdown();
while(true){
if(exe.isTerminated()){
System.out.println("結束了!");
break;
}
Thread.sleep(200);
}
}
}

上面是主線程的代碼,創建了一個能同時執行2個線程的線程池,並投入5個線程,當5個線程都執行完畢後列印---「結束了!」字元串。
exe.shutdown();該方法在加入線程隊列的線程執行完之前不會執行。

exe.isTerminated();當shutdown()或者shutdownNow()執行了之後才會執行,並返回true。

在上面的代碼中必須有exe.isTerminated()的判斷,否則在投入5個線程到線程池後會直接列印:「結束了」。不能達到我們想要的效果。

通過while(true)循環判斷exe.isTerminated()重生之大文豪的值,為了防止過多的判斷浪費資源,可設置線程睡眠Thread.sleep(200);

正是由於這個睡眠,所以當所有線程池中的線程都執行完後,有可能延遲200ms才執行"結束了"語句。這個參數越小延遲越小,結果越准確。

C. java判斷線程是否存活有幾種方法

void shutdown()

啟動一次順序關閉,執行以前提交的任務,但不接受新任務。如果已經關閉,則調用沒有其他作用。
拋出:

SecurityException - 如果安全管理器存在並且關閉,此 ExecutorService 可能操作某些不允許調用者修改的線程(因為它沒有保持RuntimePermission("modifyThread")),或者安全管理器的 checkAccess 方法拒絕訪問。
isTerminated
boolean isTerminated()

如果關閉後所有任務都已完成,則返回 true。注意,除非首先調用 shutdown 或 shutdownNow,否則 isTerminated 永不為 true。
返回:

如果關閉後所有任務都已完成,則返回 true

D. JAVA 如何檢查線程是否執行

可以使用類變數判斷 。示例如下:

classA{
staticbooleanaStop=false;
staticvoidtest(){
newAThread().start();
while(!aStop){
}
System.out.println("AThreadstoped.");
}
classAThreadextendsThread{
publicvoidrun(){
/////////////////////////
aStop=true;
}
}
}

E. java 判斷是不是同一個線程

每個線程都會由系統分配唯一的線程標識(線程id),一般是調用.get什麼來獲取id,具體方法查api文檔,這種拿來主義的習慣不好,這個查一下api就知道,一兩分鍾的事

F. 急求!如何判斷java 線程相等,用equals還是==,舉個例子


equals
,判斷線程是否相等,本質上是判斷兩個
Thread
的變數是否相等,而在Java中,每一個線程都只有唯一一個Thread
的對象,所以需要使用
equals。

G. java 如何判斷一個線程結束

線程結束時等待也就結束了
------解決方案--------------------------------------------------------
waitforsingleobject當然可以。
或者設一全局變數,線程結束就將其置為某值。在別處讀取該值,就可以判斷線程是否結束了。
------解決方案--------------------------------------------------------
wait_object_0
表示這個線程已經退出了,wait_timeout是這個線程在此函數返回時候還沒退出,但是設置的等待時間已經到了,wait_abandoned是所等待的對象是mutex而非thread,

H. java怎麼判斷一個線程是否在運行狀態

不建議
強制關閉
有時候強制關閉會拋出異常
或者根本關閉不了
你在線程中設置個boolean
變數
flag
加個判斷
你想關閉的時候控制一下
當flag==false的時候
就跳出線程
2樓的
如果線程不阻塞,你調用interrup方法根本不起作用
只有阻塞時才起作用

閱讀全文

與java線程判斷相關的資料

熱點內容
電腦怎麼找到雲伺服器 瀏覽:871
微信怎麼發應用app 瀏覽:776
花生殼dns伺服器地址 瀏覽:648
squad伺服器一般什麼時候人多 瀏覽:479
程序員戰門課 瀏覽:474
config保存伺服器地址 瀏覽:317
預訂網吧座位的app叫什麼 瀏覽:416
香港伺服器主機地址 瀏覽:640
網店美工pdf 瀏覽:447
一堆文件夾怎麼弄出來 瀏覽:743
博途如何編譯硬體 瀏覽:418
fortran程序pdf 瀏覽:504
電池消耗演算法 瀏覽:394
伺服器中斷連接怎麼處理 瀏覽:222
上世紀互聯網不發達程序員很難 瀏覽:841
語音識別android開源 瀏覽:762
地埋式垃圾壓縮中轉站 瀏覽:902
apachehttpdlinux 瀏覽:944
快遞員中通app預付款是什麼 瀏覽:843
java路徑轉義 瀏覽:857