摘要: Volatile关键字 保证线程间共享变量的可见性、有序性。 如何保证可见性:多了一个Lock的汇编指令。 什么是可见性 硬件 运行速度:CPU > 内存 > IO设备;所以在硬件的使用中,为了提高效率 CPU增加了高速缓存 读数据时,从内存读,然后缓存到CPU缓存,线程修改变量时会先同步到缓存,再 阅读全文
posted @ 2020-07-11 16:28 挣扎一下 阅读(162) 评论(0) 推荐(0) 编辑
摘要: wait & notify/notifyAll 通过之前的文章,https://www.cnblogs.com/fcb-it/p/13282740.html 我们已经知道了重量级锁会存在等待队列和阻塞队列,这两个队列是做什么用的呢? 阻塞队列:BLOCKED状态的线程会在该队列,当发现锁可用时,线程 阅读全文
posted @ 2020-07-11 11:25 挣扎一下 阅读(145) 评论(0) 推荐(0) 编辑
摘要: synchronize的使用场景 线程安全问题:多线程对共享数据状态的访问没有控制 用锁(互斥)来控制对共享数据的访问 synchronized是虚拟机级别提供给我们的同步关键字 synchronized的使用 1、修饰实例方法(锁是当前对象) 2、修饰静态方法(锁是当前类的字节码对象) 3、修饰代 阅读全文
posted @ 2020-07-11 10:44 挣扎一下 阅读(152) 评论(0) 推荐(0) 编辑