摘要: 十一、线程安全 十一、线程安全 多个线程不管以何种方式访问某个类,并在主调代码中不需要进行同步,都能表现正确的行为。 线程安全有以下几种实现方式: 第1章 不可变 第1章 不可变 不可变(Immutable)的对象一定是线程安全的,不需要再采取任何的线程安全保障措施。只要一个不可变的对象被正确地构建 阅读全文
posted @ 2018-09-10 00:19 深沉有点事 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 七、J.U.C - AQS 七、J.U.C - AQS java.util.concurrent(J.U.C)大大提高了并发性能,AQS 被认为是 J.U.C 的核心。 1.1 CountdownLatch 用来控制一个线程等待多个线程。 维护了一个计数器 cnt,每次调用 countDown() 阅读全文
posted @ 2018-09-10 00:12 深沉有点事 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 五、互斥同步 Java 提供了两种锁机制来控制多个线程对共享资源的互斥访问,第一个是 JVM 实现的 synchronized,而另一个是 JDK 实现的 ReentrantLock。 1.1 synchronized 1. 同步一个代码块 它只作用于同一个对象,如果调用两个对象上的同步代码块,就不 阅读全文
posted @ 2018-09-10 00:06 深沉有点事 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 一、线程状态转换 一、线程状态转换 1.1 新建(New) 1.1 新建(New) 创建后尚未启动。 1.2 可运行(Runnable) 1.2 可运行(Runnable) 可能正在运行,也可能正在等待 CPU 时间片。 包含了操作系统线程状态中的 Running 和 Ready。 1.3 阻塞(B 阅读全文
posted @ 2018-09-10 00:01 深沉有点事 阅读(222) 评论(0) 推荐(0) 编辑