多线程:Executor、Sleep、Deamon、Yeild
生活随笔
收集整理的這篇文章主要介紹了
多线程:Executor、Sleep、Deamon、Yeild
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Executor
?
Executor是接口,Executors是工廠類!
Executor 管理多個異步任務的執行,而無需程序員顯式地管理線程的生命周期。這里的異步是指多個任務的執行互不干擾,不需要進行同步操作。
主要有三種 Executor:
- CachedThreadPool:一個任務創建一個線程;
- FixedThreadPool:所有任務只能使用固定大小的線程;
- SingleThreadExecutor:相當于大小為 1 的 FixedThreadPool。
?
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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多线程:什么是ThreadLocal?应
- 下一篇: 操作系统:优先级反转