摘要:
一.死锁 经典的“哲学家进餐”问题很好地描述了死锁状况。5个哲学家去吃中餐,坐在-张圆桌旁。他们有5根筷子(而不是5双),并且每两个人中间放一根筷子。哲学家们时而思考,时而进餐。每个人都需要- -双筷子才能吃到东西,并在吃完后将筷子放回原处继续思考。有些筷子管理算法能够使每个人都能相对及时地吃到东西 阅读全文
摘要:
一.在任务与执行策略之间的隐性耦合 1.线程饥饿死锁 在线程池中,如果任务依赖于其他任务,那么可能产生死锁。在单线程的Executor中,如果一个任务将另一个任务提交到同一个Executor,并且等待这个被提交任务的结果,那么通常会引发死锁。第二个任务停留在工作队列中,并等待第一个任务完成,而第一个 阅读全文
摘要:
一.任务取消 其中一种协作机制能设置某个“已请求取消(Cancellation Requested)”标志,而任务将定期地查看该标志。如果设置了这个标志,那么任务将提前结束。 @ThreadSafe public class PrimeGenerator implements Runnable { 阅读全文