日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

多线程:Executor、Sleep、Deamon、Yeild

發布時間:2025/3/21 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 多线程:Executor、Sleep、Deamon、Yeild 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Executor

?

Executor是接口,Executors是工廠類!

Executor 管理多個異步任務的執行,而無需程序員顯式地管理線程的生命周期。這里的異步是指多個任務的執行互不干擾,不需要進行同步操作。

主要有三種 Executor:

  • CachedThreadPool:一個任務創建一個線程;
  • FixedThreadPool:所有任務只能使用固定大小的線程;
  • SingleThreadExecutor:相當于大小為 1 的 FixedThreadPool。
public static void main(String[] args) {ExecutorService executorService = Executors.newCachedThreadPool();for (int i = 0; i < 5; i++) {executorService.execute(new MyRunnable());}executorService.shutdown(); }

?

Daemon

守護線程是程序運行時在后臺提供服務的線程,不屬于程序中不可或缺的部分。

當所有非守護線程結束時,程序也就終止,同時會殺死所有守護線程。

main() 屬于非守護線程。

使用 setDaemon() 方法將一個線程設置為守護線程。

public static void main(String[] args) {Thread thread = new Thread(new MyRunnable());thread.setDaemon(true); }

sleep()

Thread.sleep(millisec) 方法會休眠當前正在執行的線程,millisec 單位為毫秒。

sleep() 可能會拋出 InterruptedException,因為異常不能跨線程傳播回 main() 中,因此必須在本地進行處理。線程中拋出的其它異常也同樣需要在本地進行處理。

public void run() {try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();} }

yield()

對靜態方法 Thread.yield() 的調用聲明了當前線程已經完成了生命周期中最重要的部分,可以切換給其它線程來執行。該方法只是對線程調度器的一個建議,而且也只是建議具有相同或大于的優先級的其它線程可以運行。

public void run() {Thread.yield(); }

總結

以上是生活随笔為你收集整理的多线程:Executor、Sleep、Deamon、Yeild的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。