多线程
文章平均质量分 92
wdwiscool
这个作者很懒,什么都没留下…
展开
-
synchronized和volatile底层实现
synchronized(锁对象)Synchronized的作用在并发编程中存在线程安全问题,主要原因有:1.存在共享数据2.多线程共同操作共享数据一、synchronized的特性缓存导致的可见性问题,线程切换带来的原子性问题,编译优化带来的有序性问题1.1 原子性所谓原子性就是指一个操作或者多个操作,要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。在Java中,对基本数据类型的变量的读取和赋值操作是原子性操作,即这些操作是不可被中断的,要么执行,要么不执行。但是像i+原创 2022-02-22 15:35:20 · 406 阅读 · 1 评论 -
Java并发实战之原子性、可见性、有序性
并发程序幕后的故事这些年,我们的 CPU、内存、I/O 设备都在不断迭代,不断朝着更快的方向努力。但是,在这个快速发展的过程中,有一个核心矛盾一直存在,就是这三者的速度差异。CPU 和内存的速度差异可以形象地描述为:CPU 是天上一天,内存是地上一年(假设 CPU 执行一条普通指令需要一天,那么 CPU 读写内存得等待一年的时间)。内存和 I/O 设备的速度差异就更大了,内存是天上一天,I/O 设备是地上十年。程序里大部分语句都要访问内存,有些还要访问 I/O,根据木桶理论(一只水桶能装多少水取决于它最原创 2021-08-04 16:09:18 · 130 阅读 · 0 评论