多线程
文章平均质量分 96
szy2333
希望不只是入门
展开
-
JUC的那些同步锁们
JUC的那些同步锁们ReadWriteLockCountDownLatchCyclicBarrierSemaphoreExchanger ReadWriteLock 实际情况中,对于数据往往百分之80都是在进行读的操作,那么如果还使用互斥锁,即每个线程在执行的时候,其他线程只能等待,这样效率会非常低下,因此产生了ReadWriteLock(读写锁)。其中读锁是共享锁,写锁时排它锁(互斥锁),读写锁的本质是提高了读的效率。 如下代码: public class ReadAndWrite { publi原创 2020-09-30 16:15:44 · 329 阅读 · 0 评论 -
聊聊关于Reentrantlock
Reentranlock--->Reentranlock的方法Reentranlock的基础用法tryLock公平不公平? Reentrantlock—可重入锁,之前我们学过synchronized,这个锁也是可重入的,那么为什么还需要一个专门的可重入锁?这是因为虽然两者都是可重入的,但ReentrantLock相比synchronized功能更加丰富,使用更为灵活,也更适合复杂的并发场景,因此可以用于替代synchronized。 Reentranlock的方法 lock():获取锁,不拿到锁誓不原创 2020-09-30 15:07:07 · 213 阅读 · 1 评论 -
多线程的再学习
多线程的进阶学习CAS 本文主要是跟着B站马士兵老师的课学习做的笔记,老师的课真的值得一看!!! 课程链接:https://www.bilibili.com/video/BV1xK4y1C7aT?from=search&seid=5058132445119285717 CAS CAS,即 compare and swap,意思就是先比较后交换:先拿到当前的值A并计算结果值V,然后拿到当前的新值N,在改变新值之前,先比较A和N值是否一致,如果一致,则更新值为V,如果不一致,那就重新执行这个步骤。流程图原创 2020-09-28 16:20:20 · 292 阅读 · 1 评论 -
多线程常见问题整理
目录 一.什么是进程?什么是线程?两者之间的区别? 二.Java中如何实现多线程? 三.start()和run()的区别? 四.volatile是什么? 五.线程的生命周期? 六.wait() 七.notify()和notifyAll() 八.生产者消费者模型 九.什么是线程池?为什么要使用线程池? 十.Java内存模型 十一.如何停止线程? 十二.什么是原子操作类? 十...原创 2019-04-21 14:18:16 · 1764 阅读 · 0 评论