
Java并发编程
文章平均质量分 92
anoperA
啦啦啦
展开
-
jstack命令使用
jstack查看死锁 /** * 哲学家吃饭问题: * 获取锁的顺序不一致导致死锁 */ public class PhilosopherEatingProblem { static class Philosopher implements Runnable { private int id; private final Object chopstick1; private final Object chopstick2; pri原创 2020-05-09 11:00:03 · 756 阅读 · 0 评论 -
Java并发-CountDownLatch
概述 一种同步帮助,它允许一个或多个线程等待,直到在其他线程中执行的一组操作完成为止。 示例 // 旅游巴士要等到每一个都准备好了才出发. public class CountDownLatchDemo { //代表游客准备任务 static class Traveler implements Runnable { private CountDownLatch re...原创 2020-05-07 00:23:33 · 164 阅读 · 0 评论 -
Java并发编程-同步工具类
概述 同步工具类可以是任何一个对象, 只要它根据自身的状态来协调线程的控制流.比如阻塞队列, 信号量, 栅栏以及闭锁等. 这些同步工具类都有一些特定的属性:它们封装了一些状态,这些状态将决定执行同步工具类的线程是继续执行还是等待, 还提供了一些方法对状态进行操作,以及一些方法用于高效地等待同步工具进入预期状态. 常见的同步工具类 闭锁(Latch) 设计动机: 延迟线程进度直到其达到终止状态, 闭...原创 2020-05-06 13:56:40 · 174 阅读 · 0 评论 -
Java并发编程-线程的状态与相互转换
概述 解析 根据源码, 可以看到线程拥有的状态枚举. // java.lang.Thread 1742 public enum State { /** * Thread state for a thread which has not yet started. * 新建状态, 线程还没有启动. */ NEW, ...原创 2020-05-06 12:50:33 · 163 阅读 · 0 评论