首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
JUC
订阅
呦呦鹿鸣丶
更多收藏集
微信扫码分享
微信
新浪微博
QQ
7篇文章 · 0订阅
JUC之BlockingQueue(阻塞队列)
阻塞也叫挂起,之前的wait就是挂起线程,等条件满足,被挂起的线程又会被唤醒。 而阻塞队列可以帮我们把何时阻塞何时需要唤醒的事情都给做了,不用我们自己关心阻塞和唤醒。 当阻塞队列满时,生产者线程继续往队列put元素,队列会一直阻塞生产者线程直到pull数据或响应中断退出。
JUC之ReadWriteLock(读写锁)
问题引发:之前不管是synchronized或者Lock加锁,都是对资源的所有操作(读和写)加锁,显然这样加锁不合理,因为只有写数据才可能引发数据的错乱,而读操作不会对数据产生影响,但是这样一加锁所有操作都被影响,大大降低执行效率,使用读写锁(ReadWriteLock)来解决…
JUC之辅助类
CountDownLatch是一个同步工具类,用来协调多线程之间的同步。当计数器数值减为0时,所有受其影响而等待的线程将会被激活。 CountDownLatch: 一个线程(或者多个), 等待另外N个线程完成某个事情之后才能执行。 CyclicBrrier: N个线程相互等待,…
JUC之集合不安全
Collections可以把不安全的线程转换为安全的,因为使用synchronized保证线程同步,所以也会影响效率。 写时复制:读写分离思想的一种体现,读和写不是同一个容器,保证写数据只能一个线程写,读数据可以多个线程读。 添加元素时先加锁,保证只能一个线程操作add,然后创…
JUC之8锁
模拟一个手机类(资源),现在有发邮件和发短信两个功能。两个线程取操作这个资源类,是先发邮件还是先发短信。 两个线程各自去找各自需要的资源,他们需要的资源都使用着同一把锁,所以只有一个线程可以先获得资源的执行权,另一个线程则需要等待上一个线程执行完毕才能执行。 和一锁道理相同,因…
JUC之生产者消费者
模拟一个情况,现在有两个线程对一个资源进行操作,资源数据默认为0,一个线程做减法操作,另一个线程做加法操作,每个线程进行十轮操作,保证最后资源的数据依然是0。 使用lambda表达式和匿名内部类的方式创建两个线程(A,B)并且启动,A线程去调用资源中加操作,B线程去调用资源中的…