JUC
文章平均质量分 76
咀才
这个作者很懒,什么都没留下…
展开
-
CopyOnWriteArrayList类小记
CopyOnwriteArrayList是JUC中提供的一个并发容器,它是一个线程安全且读操作无锁的ArrayList,写操作是通过创建底层数组的新副本来实现,实现了读写分离的并发策略。类似的容器还有CopyOnWriteSet。实现原理:该容器允许并发读,读操作无锁,性能较高。写操作时,如向容器中添加一个元素,则**首先将当前容器复制一份,在新副本上添加新元素,最终再将原容器的引用指向新容器。所涉及写操作的方法均使用了 ReentrantLock **。优缺点优:Copy适合读多写少的并发场原创 2021-08-19 17:49:04 · 121 阅读 · 0 评论 -
多线程通信小记
文章目录1. 多线程编程步骤2. 线程虚假唤醒3. Intel 的 MESI 协议中的缓存一致性原理4. 并发编程三大基本概念与理解4.1 原子性4.2 可见性4.3 有序性1. 多线程编程步骤创建资源类,在资源类创建属性和操作方法在资源类操作方法判断执行任务通知创建多个线程,调用资源类的操作方法2. 线程虚假唤醒 如,现有诸多线程的唤醒的条件均为条件a,而其中某个线程(称线程A)的操作是将条件改为b,那么当条件a确定时,这些线程可能会被同时唤醒(notifyAll/sign原创 2021-08-13 10:32:21 · 145 阅读 · 0 评论 -
Lock 与 sychronize 简析
@[TOP]1.1 与 synchronized 对比Lock 锁实现提供了比使用同步方法和语句可以获得的更广泛的锁操作。它们允许更灵活的结构,可能具有非常不同的属性,并且可能支持多个关联的条件对象。Lock 提供了比 synchronized 更多的功能。区别:Lock 非 Java 语言内置的是一个类, synchronized 是 Java 语言的关键字,incident是内置特性。synchronized 不需要手动释放锁,当其修饰的部分执行完后,线程自动释放锁。Lock 必须手动释放锁原创 2021-08-11 11:20:11 · 608 阅读 · 0 评论