上一页 1 ··· 44 45 46 47 48 49 50 51 52 ··· 82 下一页
摘要: 一行一行源码分析清楚 AbstractQueuedSynchronizer (二) 转自https://www.javadoop.com/post/AbstractQueuedSynchronizer-2 文章比较长,信息量比较大,建议在 pc 上阅读。文章标题是为了呼应前文,其实可以单独成文的,主 阅读全文
posted @ 2019-08-11 15:14 程序员黄小斜 阅读(6393) 评论(0) 推荐(0) 编辑
摘要: 一行一行源码分析清楚AbstractQueuedSynchronizer 转自https://www.javadoop.com/post/AbstractQueuedSynchronizer#toc4 在分析 Java 并发包 java.util.concurrent 源码的时候,少不了需要了解 A 阅读全文
posted @ 2019-08-11 15:11 程序员黄小斜 阅读(576) 评论(0) 推荐(0) 编辑
摘要: 本文转载自互联网,侵删 在前面的文章中我们介绍了Java并发基础和线程安全的概念,以及JMM内存模型的介绍,包括其定义的各种规则。同时我们也介绍了volatile在JMM中的实现原理,以及Lock锁和synchronized实现同步方式的区别。最后还讲述了final关键字在JSR-133中的语义加强 阅读全文
posted @ 2019-08-11 15:07 程序员黄小斜 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 本文转载自互联网,侵删 与前面介绍的锁和volatile相比较,对final域的读和写更像是普通的变量访问。对于final域,编译器和处理器要遵守两个重排序规则: 下面,我们通过一些示例性的代码来分别说明这两个规则: public class FinalExample { int i; //普通变量 阅读全文
posted @ 2019-08-11 15:02 程序员黄小斜 阅读(327) 评论(0) 推荐(0) 编辑
摘要: Java中的锁机制及Lock类 锁的释放-获取建立的happens before 关系 锁是java并发编程中最重要的同步机制。锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息。 下面是锁释放-获取的示例代码: 根据程序次序规则,1 happens before 2, 2 阅读全文
posted @ 2019-08-11 14:56 程序员黄小斜 阅读(446) 评论(0) 推荐(0) 编辑
上一页 1 ··· 44 45 46 47 48 49 50 51 52 ··· 82 下一页