導航:首頁 > 編程語言 > 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線程判斷相關的資料

熱點內容
海南省分布式伺服器雲主機 瀏覽:31
世紀江湖聊天室源碼 瀏覽:247
阿里網盤的文件如何解壓 瀏覽:781
簡單淘寶客源碼 瀏覽:680
煎餅解壓視頻教程全集 瀏覽:339
平行線pdf 瀏覽:631
android鎖屏不退出程序運行 瀏覽:635
sap連接的伺服器地址是 瀏覽:426
linuxshell腳本從入門到精通 瀏覽:725
python進制均值 瀏覽:629
pdfformac 瀏覽:318
用虛擬伺服器是什麼目的 瀏覽:192
壓縮機阿里巴巴 瀏覽:637
主圖指標源碼回踩 瀏覽:161
怎麼驗證伺服器埠 瀏覽:612
如何添加密碼卡 瀏覽:671
2021好聲音在哪個app觀看 瀏覽:126
壓縮層計算深度 瀏覽:391
愛奇藝怎麼不能源碼輸出 瀏覽:834
小孩視力訓練app哪個好 瀏覽:831