java线程池大小多少才合适(java线程池)
你们好,最近小时发现有诸多的小伙伴们对于java线程池大小多少才合适,java线程池这个问题都颇为感兴趣的,今天小活为大家梳理了下,一起往下看看吧。
1、 首先,了解线程是如何创建的:
2、 Tread类用于创建thread new Thread(),使用它时必须重写它的方法。@覆盖;一次创建9个线程,输出任务数。
3、 代码如下所示
4、 public class TestThread {
5、 public static void main(String[] args) {
6、 for(int i=1;i10;i++){
7、 final int task=i;
8、 new Thread(new Runnable(){
9、 @Override
10、 public void run(){
11、 System.out.println('task:'+task);
12、 }
13、 }).start();
14、 }
15、 }
16、 }
17、 (1)newFixedThreadPool:
18、 创建一个具有固定数量线程的线程池,并将任务分配给线程。
19、 创建一个定长线程池,可以控制并发线程的最大数量,多余的线程会在队列中等待。
20、 package testexcutor;
21、 import java.util.concurrent.ExecutorService;
22、 import java.util.concurrent.Executors;
23、 public class TestExcutor {
24、 public static void main(String[] args) {
25、 ExecutorService fixThreadPool=Executors.newFixedThreadPool(5);
26、 for(int i=1;i=5;i++){
27、 final int task=i;
28、 fixThreadPool.execute(new Runnable(){
29、 @Override
30、 public void run(){
31、 for(int j=1;j=5;j++){
32、 System.out.println(Thread.currentThread().getName()+' '+'task:'+task+'times:'+j);
33、 }
34、 }
35、 });
36、 }
37、 fixThreadPool.shutdown();
38、 }
39、 }
40、 (2)newCachedThreadPool创建一个可缓存的线程池。如果线程池的长度超过处理需要,空闲线程可以灵活回收。如果没有回收,就会创建新的线程。示例代码如下:
41、 package testexcutor;
42、 import java.util.concurrent.ExecutorService;
43、 import java.util.concurrent.Executors;
44、 public class TestExcutor {
45、 public static void main(String[] args) {
46、 ExecutorService cashedThreadPool=Executors.newCachedThreadPool();
47、 for(int i=1;i=100;i++){
48、 final int task=i;
49、 cashedThreadPool.execute(new Runnable(){
50、 @Override
51、 public void run(){
52、 for(int j=1;j=5;j++){
53、 System.out.println(Thread.currentThread().getName()+' '+'task:'+task+'times:'+j);
54、 }
55、 }
56、 });
57、 }
58、 cashedThreadPool.shutdown();
59、 }
60、 }
61、 创建100个线程,但是因为有线程结束,所以所有线程都可以回收。当它不够时,创建一个新的线程。
62、 (3) newScheduledThreadPool创建一个固定长度的线程池来支持调度的和周期性的任务执行。
63、 代码:
64、 import java.util.concurrent.Executors;
65、 import java.util.concurrent.ScheduledExecutorService;
66、 import java.util.concurrent.TimeUnit;
67、 public class TsetThreads {
68、 public static void main(String[] args) {
69、 ScheduledExecutorService scheduledThreadPool=Executors.newScheduledThreadPool(5);
70、 scheduledThreadPool.schedule(new Runnable() {
71、 public void run() {
72、 System.out.println('delay 10 seconds');
73、 }
74、 }, 10, TimeUnit.SECONDS);
75、 scheduledThreadPool.shutdown();
76、 }
77、 }
78、 创建一个线程,并将其执行延迟10秒。
79、 (4) newSingleThreadExecutor创建一个单线程线程池,只使用一个工作线程执行任务,保证所有任务都按照指定的顺序(FIFO,LIFO,priority)执行。
80、 代码:
81、 package testexcutor;
82、 import java.util.concurrent.ExecutorService;
83、 import java.util.concurrent.Executors;
84、 public class TestExcutor {
85、 public static void main(String[] args) {
86、 ExecutorService singleThreadExecutor=Executors.newSingleThreadExecutor();
87、 for (int i=0; i 10; i++) {
88、 final int index=i;
89、 singleThreadExecutor.execute(new Runnable() {
90、 @Override
91、 public void run() {
92、 try {
93、 System.out.println(Thread.currentThread().getName()+' '+'task'+index);
94、 Thread.sleep(200);
95、 } catch (InterruptedException e) {
96、 e.printStackTrace();
97、 }
98、 }
99、 });
100、 }
101、 singleThreadExecutor.shutdown();
102、 }
103、 }
104、 只能创建一个线程,因此线程名称是相同的。
105、 Java线程池总结:Java通过执行器提供了四个线程池,分别是:newCachedThreadPool创建一个可缓存的线程池。如果线程池的长度超过处理需要,空闲线程可以灵活回收。如果没有回收,
106、 创建了一个新线程。NewFixedThreadPool创建一个定长线程池,可以控制并发线程的最大数量,多余的线程会在队列中等待。NewScheduledThreadPool创建一个固定长度的线程池,
107、 支持定时和周期性的任务执行。NewSingleThreadExecutor创建一个单线程线程池,该线程池只使用一个唯一的工作线程来执行任务,确保所有任务都按照指定的顺序(FIFO、LIFO、priority)执行。
以上就是java线程池这篇文章的一些介绍,希望对大家有所帮助。
免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!
-
作为A股市场中极具代表性的黄金珠宝行业龙头企业,作为中国历史最悠久的珠宝品牌之一,老凤祥(股票代码:600612)...浏览全文>>
-
宝子们,杭州 房子装修完成啦!这次要给大家分享几家设计超赞的装修公司哦。它们各具特色,从空间规划到风格...浏览全文>>
-
欲筑室者,先治其基。在上海,装修房子对于每个业主而言,都是极为关键的一步,然而,如何挑选一家值得信赖的...浏览全文>>
-
2025年以来,联通支付严格贯彻落实国家战略部署,以数字和科技为驱动,做好金融五篇大文章,履行支付为民社会...浏览全文>>
-
良工巧匠,方能筑就华居;精雕细琢,方可打造美家。当我们谈论装修公司时,选择一家靠谱可靠的公司是至关重要...浏览全文>>
-
在当今社会,随着城市化进程的高速推进,建筑垃圾的产生量与日俱增。据权威数据显示,我国每年建筑垃圾产生量超 ...浏览全文>>
-
家人们,在上海要装修,选对公司那可太重要了!古语有云:"安得广厦千万间,大庇天下寒士俱欢颜。"一个温馨的...浏览全文>>
-
近年来,新能源汽车市场发展迅猛,各大品牌纷纷推出各具特色的车型以满足消费者多样化的需求。作为国内新能源...浏览全文>>
-
近年来,随着汽车市场的不断变化和消费者需求的升级,安徽滁州地区的宝来2025新款车型在市场上引起了广泛关注...浏览全文>>
-
随着汽车市场的不断变化,滁州地区的消费者对高尔夫车型的关注度持续上升。作为大众品牌旗下的经典车型,高尔...浏览全文>>
- 安徽滁州途安L新车报价2022款,最低售价16.68万起,入手正当时
- 小鹏G7试驾,新手必知的详细步骤
- 别克GL8预约试驾,4S店的贴心服务与流程
- 安徽阜阳ID.4 CROZZ落地价全解,买车必看的省钱秘籍
- 淮北探岳多少钱 2025款落地价,最低售价17.69万起现在该入手吗?
- 安徽淮南大众CC新款价格2025款多少钱能落地?
- 淮北长安启源C798价格,最低售价12.98万起现在该入手吗?
- 安徽淮南途锐价格,各配置车型售价全解析
- 蒙迪欧试驾预约,4S店体验全攻略
- 沃尔沃XC40试驾需要注意什么
- 滁州ID.4 X新车报价2025款,各车型售价大公开,性价比爆棚
- 试驾思域,快速操作,轻松体验驾驶乐趣
- 试驾长安CS35PLUS,一键搞定,开启豪华驾驶之旅
- 天津滨海ID.6 X落地价限时特惠,最低售价25.9888万起,错过不再有
- 天津滨海凌渡多少钱?看完这篇购车攻略再做决定
- 安徽池州长安猎手K50落地价,买车前的全方位指南
- 山东济南ID.6 CROZZ 2024新款价格,最低售价19.59万起,现车充足
- 试驾海狮05EV,新手必知的详细步骤
- 生活家PHEV多少钱 2025款落地价走势,近一个月最低售价63.98万起,性价比凸显
- 奇瑞风云A9试驾,新手必知的详细步骤