- 在解锁的时候,JVM需要强制刷新缓存,使得当前线程所修改的内存对其他线程可见
- volatile强制所修饰的变量及它前边的变量刷新至内存,并且volatile禁止了指令的重排序。
- 多把锁保护一个资源,一把锁用于查看资源,一把锁用于修改资源。现在有俩个线程,一个修改资源,一个查看资源,修改资源的结果并不会对查看资源的线程具有可见性。
- 非公平锁和notify()方法可能产生“饥饿”问题。即有的线程永远不会被唤醒。
- notify()方法唤醒的是wait()阻塞的线程并不唤醒还为进入临界区的线程。
- notify()换醒wait()阻塞的线程,开始从wait()之后的代码执行。
并发编程中的“冷知识”(更新中)
最新推荐文章于 2023-02-19 06:45:00 发布