随笔分类 - Java并发编程
记录Java并发编程中的问题
摘要:学习完了这篇 Java8 CompletableFuture 用法全解,还是想给繁多的API归个类,于是有了这篇文章。 一、起始方法 首先,runAsync 和 supplyAsync 都是静态方法,因此调用他们可以帮我们创建 CompletableFuture 实例。 | 静态方法 | 传入任务类
阅读全文
摘要:JDK1.7 中 HashMap 多线程成环问题,几乎已经成了Java程序员人人需要了解的知识了,本文就带大家来一切重现一下 HashMap 死循环 。
阅读全文
摘要:Thread#interrupt() 这个方法仅仅是给线程设置一个打断标记,线程的打断需要应用程序的响应,如果没有响应,打断就不会被执行。
Thread#isInterrupted() 方法可以判断线程对象 thread 的打断标记是否被置位,支持多次判断,且结果一致。
Thread.interrupted() 返回当前线程是否被设置了打断标记,且重置线程为未打断状态。
阅读全文
摘要:前言 通过上一篇博客 here 的讲述,我们已经找到了有价值的“官方文档”。 本文自然是要来用 jol-core 来实战和深入理解 synchronized 锁和 Java 对象头之间的 “纠葛” 了。 Object header is the common structure at the beg
阅读全文
摘要:在 jdk1.6 以后, synchronized 锁借鉴了 Doug Lea 的锁设计思想,对 synchronized 锁的实现进行了优化。OpenJDK 和 Oracle Java 高度相似,因此我们可以学习 OpenJDK 来掌握 Java 底层原理。对象头主要由 mark word 和 klass pointer 两部分组成。
阅读全文