java 1000个线程_java,一个程序建立1000个线程,每一个线程加1到一个变量sum。
1、程序建立1000个线程,有可能造成系统创建大量线程而导致消耗完系统内存,还会增加创建和销毁线程上所花的时间以及系统资源的开销
2、在创建线程数多的情况下,可以考虑使用线程池
以下是Java自带的几种线程池:
(1)、newFixedThreadPool 创建一个指定工作线程数量的线程池。
每当提交一个任务就创建一个工作线程,如果工作线程数量达到线程池初始的最大数,则将提交的任务存入到池队列中。
(2)、newCachedThreadPool 创建一个可缓存的线程池。
这种类型的线程池特点是:
1).工作线程的创建数量几乎没有限制(其实也有限制的,数目为Interger. MAX_VALUE), 这样可灵活的往线程池中添加线程。
2).如果长时间没有往线程池中提交任务,即如果工作线程空闲了指定的时间(默认为1分钟),则该工作线程将自动终止。终止后,如果你又提交了新的任务,则线程池重新创建一个工作线程。
(3)、newSingleThreadExecutor 创建一个单线程化的Executor,即只创建唯一的工作者线程来执行任务,如果这个线程异常结束,会有另一个取代它,保证顺序执行(我觉得这点是它的特色)。
单工作线程最大的特点是可保证顺序地执行各个任务,并且在任意给定的时间不会有多个线程是活动的 。
(4)、newScheduleThreadPool 创建一个定长的线程池,而且支持定时的以及周期性的任务执行,类似于Timer。
3、示例代码
package test; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class ThreadPoolExecutorTest { public static void main(String[] args) { ExecutorService cachedThreadPool = Executors.newCachedThreadPool(); for (int i = 0; i < 1000; i++) { cachedThreadPool.execute(new Runnable() { public void run() { //在这里执行你需要的功能 } }); } } }
取消
评论
java 1000个线程_java,一个程序建立1000个线程,每一个线程加1到一个变量sum。相关推荐
- C语言(CED)编写一个程序,求两个字符之间的加减运算。
(请先看置顶博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 复习C语言,不同的心境遇到了不同的问题: 问题: 编写一 ...
- java进程与线程_Java多线程笔记(零):进程、线程与通用概念
前言 不积跬步,无以至千里:不积小流,无以成江海.在学习Java多线程相关的知识前,我们首先需要去了解一点操作系统的进程.线程以及相关的基础概念. 进程 通常,我们把一个程序的执行称为一个进程.反过来 ...
- auto.js停止所有线程_Java多线程编程基础知识 概念介绍,以及线程状态
一.进程 进程是操作系统结构的基础:是一次程序的执行:是一个程序及其数据在处理机上顺序执行时所发生的活动.操作系统中,几乎所有运行中的任务对应一条进程(Process).一个程序进入内存运行,即变成一 ...
- C++编程练习:抽象类——编写一个程序,计算三角形、正方形的面积,抽象出一个基类base。
例.编写一个程序,要求计算三角形.正方形的面积,抽象出一个基类base,在其中说明一个虚函数display( )用来展示其参数且求出面积. 代码如下: 头文件headfile.h: #pragma o ...
- java数字计算结果_Java编写程序之输入一个数字实现该数字阶乘的计算
需求说明: 编写Java程序,输入一个数字,实现该数字阶乘的计算.一个数字的阶乘是所有小于及等于该数的正整数的积,自然数n的阶乘写作n! .例如,5的阶乘等于1*2*3*4*5,表示为5! = 120 ...
- java中person作用_Java题目:建立一个人类(Person)和学生类(Student) 功能要求:
满意答案 lialei1 2017.11.25 采纳率:48% 等级:12 已帮助:14031人 package test; /** * Person中包含4个保护型的数据成员name,addr ...
- java在实际应用_Java应用程序如何部署在“现实世界”中?
这取决于应用程序.有很多选项取决于用户如何使用您的应用程序.通常它被包装成罐子或专门的罐子(战争,耳朵). 理论上,您可以使用.class文件压缩原始目录结构,并提供为用户运行java命令的shell ...
- java开发电脑软件_JAVA开发程序员,开发使用笔记本推荐?
同 java 路过. 买笔记本,我们可以从以下几点来选购参考. "硬参数"CPU 内存 硬盘 显卡 "软参数"屏幕 重量 散热 那依次来按照顺序来介绍下. &q ...
- java端到端_Java应用程序性能监控:复杂分布式应用程序的端到端性能
java端到端 通过从您的应用程序学习企业APM产品,发现更快,更有效的性能监控. 参加AppDynamics APM导览! 在最复杂和分布式环境中端到端监视Java应用程序性能-专注于业务事务. 自 ...
最新文章
- Redis的安装部署
- python基础教程:类和对象
- 怀卡托大学硕士计算机科学,2020年怀卡托大学研究生一般几年毕业
- c++ primer 5th,练习11.19,编写代码验证
- VBScript 教程之数据库篇
- 【Android】完善Android学习(二:API 2.3.4)
- Unix环境编程-守护进程
- android schedule 参数,android – requestLocationUpdates minTime参数的用途
- weblogic错误页面
- 10. InnoDB表空间加密
- HTML5 Canvas自定义圆角矩形与虚线(Rounded Rectangle and Dash Line)
- 免费拥有个人云主机——AWS免费EC2套餐
- 程序江湖事——docker江湖缘
- Machine Learning Algorithms Study Notes(4)—无监督学习(unsupervised learning)
- r语言和python的区别-Python和R语言之分析对比
- linux怎样通过手机上网,Linux系统通过手机GPRS上网的设置教程
- js中用正则表达式判断字符串中是否包含中文和英文
- 面试笔记:面经-瓜子
- LC28 Generate Parentheses
- 广东迅视资管 电子视觉芯片每秒最快可计算181帧