您现在的位置是:首页 币资讯币资讯
core币的销毁机制 JAVA架构之线程池是怎样工作的?
LA 2024-05-29 13:33:56 币资讯 已有人查阅
导读JAVA架构之线程池是怎样工作的?通俗易懂的给你解释一下,池塘里有很多鱼,我们捞一条上来把玩一番,把玩一段时间后放回池塘里去。这就是线程池的工作原理,只不过这个池塘里放的不是鱼,是一个个线程对象,用到一个就拿一个,用...
JAVA架构之线程池是怎样工作的?
通俗易懂的给你解释一下,池塘里有很多鱼,我们捞一条上来把玩一番,把玩一段时间后放回池塘里去。这就是线程池的工作原理,只不过这个池塘里放的不是鱼,是一个个线程对象,用到一个就拿一个,用完放回池塘内,而这个池塘在计算机内就是对应在软件的内存中了。

java.util.concurrent包中我们能找到线程池的定义,其中ThreadPoolExecutor是我们线程池核心类,首先看看线程池类的主要参数有哪些。
corePoolSize:线程池的核心大小,也可以理解为最小的线程池大小。
maximumPoolSize:最大线程池大小。
keepAliveTime:空余线程存活时间,指的是超过corePoolSize的空余线程达到多长时间才进行销毁。
unit:销毁时间单位。
workQueue:存储等待执行线程的工作队列。
threadFactory:创建线程的工厂,一般用默认即可。
handler:拒绝策略,当工作队列、线程池全已满时如何拒绝新任务,默认抛出异常。
线程池工作流程
1、如果线程池中的线程小于corePoolSize时就会创建新线程直接执行任务。
2、如果线程池中的线程大于corePoolSize时就会暂时把任务存储到工作队列workQueue中等待执行。
3、如果工作队列workQueue也满时:当线程数小于最大线程池数maximumPoolSize时就会创建新线程来处理,而线程数大于等于最大线程池数maximumPoolSize时就会执行拒绝策略。
ThreadPool工作原理任务先去核心线程池,如果核心线程池没有则存入到Q中;Q满了去启新的线程(启新线程时会全局锁),不能启的话就返回错误需要多了解些,参数配置和使用结合。
线程池存活时间设置多久比较好?
设置60秒比较好,keepAliveTime(线程存活保持时间)作用:当线程池中线程数大于核心线程数时,线程的空闲时间如果超过线程存活时间,那么这个线程就会被销毁,直到线程池中的线程数小于等于核心线程数。
缓存线程池,缓存的线程默认存活60秒。
线程的核心池corePoolSize大小为0,核心池最大为Integer.MAX_VALUE,阻塞队列使用的是SynchronousQueue。是一个直接提交的阻塞队列, 他总会迫使线程池增加新的线程去执行新的任务。在没有任务执行时,当线程的空闲时间超过keepAliveTime(60秒),则工作线程将会终止被回收,当提交新任务时
志强系列的CPU和i3、i5、i7这些有什么区别吗?
志强系列是服务器的cpu属于洋垃圾的范畴,是国外企业用过三年的cpu过了保修期后当垃圾被中国进口销毁的,但是这些cpu还是可以用的,所以商人把这些洋垃圾当正常的cpu买,自然就便宜。i357都是普通的cpu面向的是个人,服务器cpu是以x e开头的,个人用cpu是以 i g开头的。如果讲究性价比服务器cpu还是可以的,不过别被奸商给坑了就是了。e x自己组装是可以的,但是价格要适中,不要用买i g的价格买这些洋垃圾。
| 欧意交易所最新推荐 | ||
| OK交易所下载 | USDT钱包下载 | 比特币平台下载 |
| 挖比特币方法 | 买稳定币教程 | 钱包注册指南 |
本文标签: 区块链
很赞哦! ()
相关文章
随机图文
2025年binance币安下载指南:新手用户注册及APP下载安装教程
binance币安作为全球知名的加密货币交易平台,为数字资产管理和提供便捷之一,许多中国大
binance币安x是哪个国家的?解析背景、发展与使用指南
当投资者和加密货币爱好者提及“binance”时,一个最基础也最内核的问题便是:“binance究
虚拟货币交易所哪间好?2025加密货币交易所评价
虚拟货币、加密货币没有特定国家或地区发行,可以全世界通用不需要换汇,另外,它不用付手
币安空投赚币是什么?跟简单赚币有什么区别?币安空投赚币图文教学
币安 空投赚币是币安 交易所推出的不定期好康活动,你只需投入USDT、BTC 等指定币种,就能