摘要: synchronized和CAS的区别: 相同点:在多线程的情况下,都可以保证共享数据的安全性。 不同点: synchronized总是从最坏的角度出发,认为每次获取数据的时候,别人都有可能修改。 所以在每次操作共享数据之前,都会上锁。(悲观锁) ​ cas是从乐观的角度出发,假设每次获取数据别人都 阅读全文
posted @ 2020-08-17 22:20 Joker-0927 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 原子性的定义: 所谓的原子性是指在一次操作或者多次操作中,要么所有的操作全部都得到了执行并且不会受到任何因素的干扰而中断,要么所有的操作都不执行,多个操作是一个不可以分割的整体。简单点就是:要么这个操作不进行,要么就进行到底,就不用担心线程切换问题 count++不是一个原子性操作,他在执行的过程当 阅读全文
posted @ 2020-08-17 22:09 Joker-0927 阅读(517) 评论(0) 推荐(0) 编辑
摘要: 多线程中如果两个线程同时使用第三方的共享数据,并且进行修改的话,那么就有可能出现数据更新不及时的问题原因是: 假设线程A和线程B共享第三方数据count: 线程A和线程B中都会开辟一段用来保存count值得变量副本,因为这样执行更快: 线程每次修改值都会: 先将副本中的值修改 然后赋值给副本 最后更 阅读全文
posted @ 2020-08-17 19:57 Joker-0927 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 阻塞队列的基本使用: 常见的阻塞队列有ArrBlockingQueue和LinkedBlockQueue 下面是它们的继承结构: ArrayBlockingQueue: 底层是数组,有界 LinkedBlockingQueue: 底层是链表,无界.但不是真正的无界,最大为int的最大值 由Block 阅读全文
posted @ 2020-08-17 18:53 Joker-0927 阅读(192) 评论(0) 推荐(0) 编辑
// 侧边栏目录