成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java線程池在使用中的問題解疑

開發 后端
Java線程池如何才能更好的使用呢?這個問題需要大家不斷的努力,這完全是需要我們詳細的學習相關的技術知識。希望大家有所收獲。

Java線程池需要我們不斷的學習,其實我們在使用的時候還是有不少問題需要我們解決。我們實現了一個簡單的Java線程池。現在我們就可以使用它了,下面的代碼做了一個簡單的示例:

Java代碼

  1. public class SimpleTaskTest extends Task {   
  2. @Override   
  3. public void deal() {   
  4. // do something   
  5. }   
  6. public static void main(String[] args) throws InterruptedException {   
  7. ThreadPoolService service = new ThreadPoolService();   
  8. service.start();   
  9. // 執行十次任務   
  10. for (int i = 0; i < 10; i++) {   
  11. service.runTask(new SimpleTaskTest());   
  12. }   
  13. // 睡眠1秒鐘,等待所有任務執行完畢   
  14. Thread.sleep(1000);   
  15. service.stop();   
  16. }   
  17. }   
  18. public class SimpleTaskTest extends Task {  
  19. @Override  
  20. public void deal() {  
  21. // do something  
  22. }  
  23. public static void main(String[] args) throws InterruptedException {  
  24. ThreadPoolService service = new ThreadPoolService();  
  25. service.start();  
  26. // 執行十次任務  
  27. for (int i = 0; i < 10; i++) {  
  28. service.runTask(new SimpleTaskTest());  
  29. }  
  30. // 睡眠1秒鐘,等待所有任務執行完畢  
  31. Thread.sleep(1000);  
  32. service.stop();  
  33. }  

 

當然,我們實現的是最簡單的,這里只是為了演示Java線程池的實現原理。在實際應用中,根據情況的不同,可以做很多優化。比如:

調整任務隊列的規則,給任務設置優先級,級別高的任務優先執行。
動態維護Java線程池,當待執行任務數量較多時,增加線程的數量,加快任務的執行速度;當任務較少時,回收一部分長期閑置的Java線程池,減少對系統資源的消耗。

事實上Java5.0及以上版本已經為我們提供了線程池功能,無需再重新實現。這些類位于java.util.concurrent包中。

Executors類提供了一組創建Java線程池對象的方法,常用的有一下幾個:

Java代碼

  1. public static ExecutorService newCachedThreadPool() {   
  2. // other code   
  3. }   
  4. public static ExecutorService newFixedThreadPool(int nThreads) {   
  5. // other code   
  6. }   
  7. public static ExecutorService newSingleThreadExecutor() {   
  8. // other code   
  9. }   
  10. public static ExecutorService newCachedThreadPool() {  
  11. // other code  
  12. }  
  13. public static ExecutorService newFixedThreadPool(int nThreads) {  
  14. // other code  
  15. }  
  16. public static ExecutorService newSingleThreadExecutor() {  
  17. // other code  

 

newCachedThreadPool()方法創建一個動態的線程池,其中線程的數量會根據實際需要來創建和回收,適合于執行大量短期任務的情況;newFixedThreadPool(int nThreads)方法創建一個包含固定數量線程對象的Java線程池,nThreads代表要創建的線程數,如果某個線程在運行的過程中因為異常而終止了,那么一個新的線程會被創建和啟動來代替它;而newSingleThreadExecutor()方法則只在線程池中創建一個線程,來執行所有的任務。

【編輯推薦】

  1. Java線程池如何體現自己的用途
  2. Java多線程同步如何從JVM的角度體會
  3. Java多線程同步機制的深入探討
  4. 深入Java虛擬機:JVM中的Stack和Heap
  5. 兩種JavaScript解析引擎性能對比談
責任編輯:張浩 來源: CSDN
相關推薦

2009-12-07 10:05:22

PHP session

2009-12-02 19:14:07

PHP header

2009-12-31 15:28:02

Silverlight

2010-02-05 16:07:52

C++多態覆蓋

2009-02-04 18:20:42

服務器虛擬化VMware

2010-01-04 13:15:33

跨域引用Silverl

2010-02-02 13:20:33

C++對象傳遞

2009-12-03 15:13:51

PHP開發中問題

2010-01-04 15:27:45

Silverlight

2009-12-01 15:41:16

PHP substr截

2021-09-11 15:26:23

Java多線程線程池

2012-02-29 13:26:20

Java

2010-01-20 14:52:21

VB.NET修改數據窗

2009-11-27 10:02:54

PHP mb_strw

2009-12-08 10:33:23

PHP應用問題

2025-02-26 07:26:29

2010-05-24 14:04:48

JavaSwing多線程

2021-12-07 08:31:48

線程池中間件開源

2012-05-15 02:18:31

Java線程池

2015-03-24 16:29:55

默認線程池java
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美在线 | 欧美性网站| 欧美成人一区二区三区 | 日韩中文字幕免费在线 | 日韩成人高清在线 | 天天躁日日躁性色aⅴ电影 免费在线观看成年人视频 国产欧美精品 | 国产成人99久久亚洲综合精品 | 在线播放一区二区三区 | 成人在线不卡 | 国产高清在线观看 | 另类 综合 日韩 欧美 亚洲 | 欧美日韩在线成人 | 国产精品视频久久 | 91精品国产91久久久久久 | 久久国产一区二区 | 久久国产视频播放 | 毛片免费在线观看 | 午夜免费视频 | 亚洲成人av | 成人一区av| 久久在线看 | 成人在线播放网站 | av一区二区在线观看 | 日韩a在线 | 欧美日在线 | 成人免费一区二区三区视频网站 | 亚洲欧美日韩一区 | 黄色网址免费在线观看 | 中文字幕二区 | 国产欧美精品一区二区色综合 | 91性高湖久久久久久久久_久久99 | 午夜影院在线观看 | 特级做a爱片免费69 精品国产鲁一鲁一区二区张丽 | 日本精品视频在线观看 | 99热这里都是精品 | 国产成人在线视频免费观看 | 99久久成人| 成人精品鲁一区一区二区 | www.4hu影院 | 久久只有精品 | 蜜月va乱码一区二区三区 |