线程Thread学习记录

 

ThreadLocal

threadlocal是一个线程内部的存储类,可以在线程内指定存储数据,只有指定线程可以得到存储数据,大致意思就是ThreadLocal提供了线程内存储变量的能力,每一个相处对应的变量是相互独立的,通过get和set方法可以得到当前线程对应的值。

用个不太恰当的例子比喻,从表面上看threadlocal相当于维护了一个map,key就是当前线程,value就是需要存储的对象。

但这个比如也是不恰当的,实际上ThreadLocal静态内部类ThreadLocalMap为每个thread都维护了一个数据table,threadLocal确定了一个数据下标,而这个下标就是value存储的位置

线程的状态

新建、就绪、运行、阻塞、死亡

 

线程的实现方式

其它六个参数很好理解,就记住这个threadfactory

 

1、首先是有个默认的corepoolsize,今日当值的人数,当达到这个默认值时,继续进来线程,则会进入阻塞队列中,等待叫号,如果corepoolsize今日当值和阻塞队列worequeu都满了,再进来线程人员,则会开通maximumpoolsize最大执行线程数,但如果线程人员进行进去,最大的满了,队列也满了,则会启动拒绝策略。

CallerRunsPolicy:回退到调用者,谁调用则返回给谁

DiscardOldestPolicy:

corepoolsize大不了就用默认的0,懒加载思想,阻塞队列必须设置一个初始值,不然他的默认值为Integer.Max21亿之多

maximumpoolsize实际生产中参数设置多少???:

查看系统的线程数几核的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值