執行緒退出的幾種方式

2021-08-14 05:42:07 字數 1185 閱讀 2975

使用volatile型別的域來儲存取消狀態

因為volatile本身特性,每次修改都會立刻重新整理到快取中,這樣就可以保證執行緒任務可以及時看到

public class primegenerator implements runnable

}public void cancel()

public synchronized listget()

listasecondofprimes() catch (interruptedexception e)

return generator.get();

}}

但是這種方式有乙個問題:如果任務呼叫阻塞方法而被阻塞,那麼現成永遠都不會結束

如下面**所示:

public class brokenprimeproducer extends thread

public void run() catch (interruptedexception e) }}

public void cancel()

public static void main(string args) catch (interruptedexception e)

brokenprimeproducer.cancel();

system.out.println(brokenprimeproducer.queue.size());

}}

2.採用中斷取消任務

設定中斷後執行緒會丟擲異常,這時候可以做相應處理然後退出任務

public class primeproducer extends thread

public void run() catch (interruptedexception e) }}

public void cancel()

public static void main(string args) catch (interruptedexception e)

brokenprimeproducer.cancel();

system.out.println(brokenprimeproducer.queue.size());

}}

3.stop結束執行緒

這種方法強制結束執行緒不推介使用

APP優雅退出的幾種方式

1.容器式退出 activity放入到乙個集合中,退出時,遍歷集合,退出 2.廣播式退出 在baseactivity中註冊廣播,退出時傳送廣播 3.程序式退出 直接殺死當前應用的程序 4.singletask 廣播退出 當activity啟動模式設定為singletask時,其他activty跳轉到...

Python 迴圈退出的幾種方式

在這裡主要討論的是while迴圈,for迴圈通過迭代物件退出。由於while迴圈通常不知道迴圈的次數,所以對於while迴圈,它的幾種應用場景導致退出條件設定的不同。可使用while迴圈讓程式在使用者在願意的時不斷執行,在其中定義乙個退出值,只要使用者輸入的不是這個,程式就接著執行。形式如下 act...

SylixOS單個執行緒的退出方式

硬體平台 pc機 軟體平台 windows7,realevo ide 一般情況下,執行緒在其主體函式退出的時候會自動退出,但同時也可以因為接收到另乙個執行緒發來的取消請求而強制退出。總結上述,單個執行緒可以通過3種方式退出 sylixos相容絕大部分posix介面函式,因此可以直接呼叫以下函式 函式...