线程
延迟满足
热爱新技术,喜欢研究原理,感受设计之美。
展开
-
用澡堂来理解临界区
澡堂的那些事 一天,隔壁老王去澡堂洗澡。到了澡堂后先去吧台交了钱,然后服务员给了他一把小柜子的钥匙(小柜子就是我们去澡堂洗澡时用来存放衣物的)。老王脱衣服后,用钥匙打开柜子把衣服存放了进去,然后又用钥匙把柜子锁上了。 把老王存放衣物当做一个进程。存放衣物的小柜子是公共的资源,我们去洗澡的每一个人都可以使用,但是使用的时候只能是一个人。这不就是临界资源呗。我们通过钥匙来实现了每次只能一个人使用,...原创 2018-06-03 20:52:29 · 251 阅读 · 0 评论 -
Java 并发编程之 Synchronized 关键字最全讲解
synchronized关键字 synchronized锁什么? 锁对象。 锁的对象包括: this 临界资源对象 Class 类对象。 synchronized 除了保障原子性外,其实也保障了可见性。因为 synchronized 无论是同步的方法还是同步的代码块,都会先把主内存的数据拷贝到工作内存中,同步代码块结束,会把工作内存中的数据更新到主内存中,这样主内存中的数据一定...原创 2018-09-11 17:18:11 · 6360 阅读 · 2 评论 -
Java 并发编程之 volatile 关键字
作用 保证不同线程对 volatile 修饰的变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。 禁止进行指令重排序。 volatile 的可见性 public class Test_09 { /*volatile*/ boolean b = true; void m(){ System.out.printl...原创 2018-09-11 20:40:59 · 145 阅读 · 0 评论