创建线程的3种方式,线程池的参数详解

    现在随着互联网用户的激增,也就要求软件服务的反应速度的提升,多线程是常用的软件编程技术。
    现在讲讲java线程的几种常见的创建方式:
    ①继承Thread类`...extends Thread`
    ②覆写Runnable()接口
    ③覆写Callable()接口,覆写call()方法
    
    线程池:ThreadPoolExecutor
    线程池的构造函数参数多达7个
    
    corePoolSize:线程池中核心线程数的最大值
    如果ThreadPoolExecutor.execute的任务数大于corePoolSize,那么就进入队列BlockingQueue,如果BlockingQueue满了会继续创建新线程、一直到线程个数大于第二个参数maximumPoolSize。在刚创建ThreadPoolExecutor的时候线程不会立即启动,而是等到了有任务要执行才会启动。

	maximumPoolSize:允许创建的最大线程数、如果BlockingQueue已经满了、线程数等于maximumPoolSize 则会执行ThreadPoolExecutor的拒绝策略

	keepAliveTime:表示空闲线程的存活时间

	TimeUnit unit:表示keepAliveTime的单位
	
	workQueue:队列,当线程在大于核心线程数和小于最大线程数的时候,线程在队列中。

	handler:拒绝策略
	当没有多余线程执行的时候就会触发相对应的拒绝策略
	ThreadPoolExecutor.AbortPolicy():抛出异常
	ThreadPoolExecutor.CallerRunsPolicy():由向线程池提交任务的线程来执行该任务
	ThreadPoolExecutor.DiscardPolicy():抛弃当前的任务
	ThreadPoolExecutor.DiscardOldestPolicy():抛弃最旧的任务(最先提交而没有得到执行的任务)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值