java线程基础备忘

编程技术  /  houtizong 发布于 3年前   62
t.interrupt(): 中断线程t.
synchronized(o){o.wait()}: 自已放弃CPU等待o.notify().
synchronized(o){o.notify()}: 通知o.wait()的线程你可以运行了。如果这样的线程有多个,则选一个。notifyAll()将通知所有的。
注意以上都在synchronized内,因为wait, notify都必须自己的线程是the own the o's monitor,就是说必须在synchronized(o)内。

以上只能等待一个条件,若要多个条件可用lock.newCondition。

threadPool主要有fixed和cache, cache是0,max,synQueue就是说这个queue其实永远不放东西直接进pool。而fixed是n,n,blockQueue就是说task都先进pool满n后进queue,queue也满了就reject. reject policy是可以设的。
更通常的情况是n,m,t,blockQueue就是task先进pool超过n后进queue满后corepoolsize从n开始往上加直到m,再有task就reject policy. t是等待时间,task超过n的线程们等待t后结束。
其它的如singleThread是n=1的fixed特例。还有scheduled等。

可以用Semaphore信号量控制临界资源,CyclicBarrier等待n个线程结束,CountDownLatch倒计数等。

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客