线程池和线程详细教程

1. 线程池的概念:

          线程池就是首先创建一些线程,它们的集合称为线程池。使用线程池可以很好地提高性能,线程池在系统启动时即创建大量空闲的线程,程序将一个任务传给线程池,线程池就会启动一条线程来执行这个任务,执行结束以后,该线程并不会死亡,而是再次返回线程池中成为空闲状态,等待执行下一个任务。

2. 线程池的工作机制

         2.1 在线程池的编程模式下,任务是提交给整个线程池,而不是直接提交给某个线程,线程池在拿到任务后,就在内部寻找是否有空闲的线程,如果有,则将任务交给某个空闲的线程。

         2.1 一个线程同时只能执行一个任务,但可以同时向一个线程池提交多个任务。

3. 使用线程池的原因:

        多线程运行时间,系统不断的启动和关闭新线程,成本非常高,会过渡消耗系统资源,以及过渡切换线程的危险,从而可能导致系统资源的崩溃。这时,线程池就是最好的选择了。

 

一:使用线程的方式去执行程序

可以看到用时11964毫秒

 public static void main(String[] args) throws InterruptedException {Long start = System.currentTimeMillis();final Random random = new Random();final List<Integer> list = new ArrayList<>();for (int i = 0; i < 100000; i++) {Thread thread = new Thread() {@Overridepublic void run() {list.add(random.nextInt());}};thread.start();thread.join();}System.out.println(System.currentTimeMillis() - start);}

 

 

 

二:使用线程池的方式去执行程序

可以看到用时43毫秒,是很快的

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/270441.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚拟主机 php .htacess,LiteSpeed添加虚拟主机+支持htaccess图文教程

上次给大家简单介绍了Debian下手动安装LiteSpeedMySQLPHP的教程(点击查看)&#xff0c;但是这个教程还没完&#xff0c;想要使用litespeed还要进入后台进行设置&#xff0c;包括添加虚拟主机和.htaccess伪静态的支持&#xff0c;本文就继续这个话题给大家详细做个图文教程吧~为…

前端:uniapp封装组件用法笔记

大家在做前端项目开发的时候&#xff0c;经常会遇到公用的一些页面&#xff0c;比如搜索、列表、商品详情卡片、评论列表等。为了提高开发效率、使代码看起来更加简洁&#xff0c;这个时候封装相应的组件是最好的解决方案。今天小编给大家介绍一下如何在uniapp中封装组件&#…

Angular的工作原理

首先上一小段代码&#xff08;index.html&#xff09;&#xff0c;结合代码我们来看看&#xff0c;angular一步一步都做了些什么。 <!doctype html> <html ng-app><head><script src"angular.js"></script></head><body>&…

php中等腰金字塔挖空,php 用for循環做,金字塔,菱形,空三角

echo "金字塔 style1";for($i1;$i<9;$i){for($k0;$kecho "*";}echo "";}echo "金字塔 style2";for($c5;$c>0;$c--){for($c10;$c1echo "*";}echo "";}echo "金字塔 style3";for($a0;$a<11;$a){…

网络知识:四个网络命令ping、arp、tracert、route的用法介绍

网络相关的从业人员&#xff0c;都需要面对检测和解决网络故障的各种问题&#xff0c;实际案例中因为网络导致的故障也是最多的&#xff0c;今天我们和大家一起来学习一下解决网络故障时使用最多的四个网络命令。希望对大家以后的实际工作中的故障排除起到作用。 1、Ping命令的…

jQuery掷骰子

网上找的jQuery掷骰子效果&#xff0c;测试兼容IE7及以上浏览器&#xff0c;IE6没有测试 js代码如下&#xff1a; 1 $(function(){2 var dice $("#dice");3 dice.click(function(){4 $(".wrap").append("<div iddice_mask><…

电脑知识:台式电脑如何使用无线网上网

❤️作者主页&#xff1a;IT技术分享社区 ❤️作者简介&#xff1a;大家好,我是IT技术分享社区的博主&#xff0c;从事C#、Java开发九年&#xff0c;对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉&#xff1a; 数据库领域优质创作者&#x1f3c6;&#x…

oracle的function的语法,Oracle function语法

2018-3-30 遇到需要使用SQL方法拼接字符串的情况&#xff0c;就研究了一下SQL简单的方法应用--定义入参数[参数名 in 参数类型]create or replace function p_gettype(se_type in varchar2)--定义返回类型return varchar2isv_calling_type varchar2(45);v_called_type varchar2…

进程动态优先级调度

简单的进程优先级动态调度 cup运行&#xff1a; 每执行一次&#xff0c;优先级减一&#xff0c;运行时间减一。 就绪队列中的进程&#xff1a;每次按优先级降序排序&#xff08;优先级越大越优先执行&#xff09;&#xff0c;若优先级相等再按时间升序排序&#xff08;时间越小…

电脑维修:如何给笔记本电脑升级内存条

❤️作者主页&#xff1a;IT技术分享社区 ❤️作者简介&#xff1a;大家好,我是IT技术分享社区的博主&#xff0c;从事C#、Java开发九年&#xff0c;对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉&#xff1a; 数据库领域优质创作者&#x1f3c6;&#x…

php动态添加查询,php动态添加url查询参数的方法,php动态url参数_PHP教程

php动态添加url查询参数的方法&#xff0c;php动态url参数本文实例讲述了php动态添加url查询参数的方法。分享给大家供大家参考。具体分析如下&#xff1a;这段代码可以动态为url添加key-value查询参数&#xff0c;如果参数已经存在则会用新的进行覆盖function add_querystring…

Object o = new Object()在内存中占几个字节

CAS&#xff1a; Compare and Swap&#xff0c;即比较再交换。 jdk5增加了并发包java.util.concurrent.*,其下面的类使用CAS算法实现了区别于synchronouse同步锁的一种乐观锁。JDK 5之前Java语言是靠synchronized关键字保证同步的&#xff0c;这是一种独占锁&#xff0c;也是…

MYSQL笔记:删除操作Delete、Truncate、Drop用法比较

今天小编给大家梳理一下MYSQL删除操作Delete、Truncate、Drop用法有什么区别&#xff0c;到底该如何合理使用&#xff0c;希望对大家能有帮助&#xff01;1、执行速度比较Delete、Truncate、Drop关键字都可以删除数据drop>truncate>delete2、原理方面2.1 deletedelete属于…

php常用函数

//php curl get获取head头部跳转参数function get_head($sUrl){$oCurl curl_init(); // 设置请求头, 有时候需要,有时候不用,看请求网址是否有对应的要求$header[] "Content-type: application/x-www-form-urlencoded";$user_agent "Mozilla/5.0 (Windows NT…

partition oracle用法,Oracle partition by 使用说明

--用法详解0、select * from wmg_test; ---测试数据1、select v1,v2,sum(v2) over(order by v2) as sum --按照 v2排序&#xff0c;累计nn-1....1from wmg_test;2、select v1,v2,sum(v2) over(partition by v1 order by v2) as sum --先分组&#xff0c;组内在进行…

SQLServer优化:SQLServer中NOLOCK关键字的用法介绍

目录 1、为什么SQLServer有NOLOCK关键字&#xff1f; 2、SQLServer有NOLOCK有什么问题 3、NOLOCK使用场景 4、nolock和with(nolock)的区别 5、表解锁脚本 1、为什么SQLServer有NOLOCK关键字&#xff1f; SQLServer没创建一个查询&#xff0c;都相当于创建一个查询会话&#xff…

20144303 20145239 实验三

20144303 20145239 实验三 实验内容 1、首先连接好实验箱电源&#xff0c;用串口线、并口线、网线、连接实验箱和主机 2、安装ADS并破解 安装文件在00-ads1.2目录下&#xff0c;破解方法在00-ads1.2\Crack目录下 3、安装GIVEIO驱动(安装文件在01-GIVEIO目录下) 把整个GIVEIO目录…

oracle无法创建监听器,关于Oracle net Manager中点击无法创建监听程序的解决方案

首先查看你的环境变量中是否有如果没有请添加该环境变量。变量名为&#xff1a;TNS_ADMIN 变量值为&#xff1a;E:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN;(如果你更改了默认目录&#xff0c;请找到相应的目录加进去)&#xff0c;添加完成之后&#xff0c;…

办公技巧:分享5个非常好用的Excel插件

❤️作者主页&#xff1a;IT技术分享社区 ❤️作者简介&#xff1a;大家好,我是IT技术分享社区的博主&#xff0c;从事C#、Java开发九年&#xff0c;对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉&#xff1a; 数据库领域优质创作者&#x1f3c6;&#x…