摘要: 问题:Thread.join的代码如下,为什么没有加锁却可以wait?另外下面的代码说明线程结束的时候会signal正在wait的线程,实际是signalAll()。 while(isAlive()){ wait(0); } 并发工具类(提供超时等重载方法,含有查询线程排队和统计的接口) 1、Cou 阅读全文
posted @ 2016-07-05 22:42 YDDMAX 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 自己的总结: 1、原子类的核心是循环CAS,其中CAS使用的是unsafe类里面的3种CAS。 2、原子类共分为4类 3、CAS会带来ABA问题,所以直接使用原子类也有ABA问题。但是使用AtomicStampedReference 可以解决这个问题。 4、自己对CAS的理解:含义像下面的代码那样, 阅读全文
posted @ 2016-07-05 22:32 YDDMAX 阅读(677) 评论(0) 推荐(0) 编辑
摘要: 第7章:JAVA中的13个原子操作类 第8章:JAVA中的并发工具类 第9章:JAVA中的线程池 阅读全文
posted @ 2016-07-05 22:08 YDDMAX 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 1、线程池优点 1、降低资源消耗 降低线程的创建和销毁造成的消耗 2、提高响应速度 不需要先创建线程再运行 3、提高线程的可管理性 使用线程池可以统一分配,调优和监控。 2、线程池的流程 如果当前运行的线程少于corePoolSize,则创建新线程来执行任务(这一个过程需要获取全局锁) 如果当前运行 阅读全文
posted @ 2016-07-05 22:05 YDDMAX 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 1、结构 使用的是PriorityQueue来作为底层的存储 元素需要实现Delayed接口,该接口继承了comparable接口 DelayQueue的队头元素是根据comparable排在队首的元素 无论是入队还是出队都是先加锁,也就是异步进行的。 2、add,put,offer操作底层都是调的 阅读全文
posted @ 2016-07-05 16:14 YDDMAX 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 优先级队列 1、无限的 2、不允许null 3、在构造queue或者元素需要实现comparable接口 4、数据结构是堆,而且是极小堆。存储是数组。 An unbounded priority queue based on a priority heap. The elements of the 阅读全文
posted @ 2016-07-05 16:05 YDDMAX 阅读(105) 评论(0) 推荐(0) 编辑