多线程

死锁的例子

http://my.oschina.net/u/1469592/blog/208374

notify和notifyall的区别 

notify发生死锁的情景

java.util.concurrent 之六:使用Future类和Callable类

Callable与Future的介绍

http://www.cnblogs.com/whgw/archive/2011/09/28/2194760.html

* Callable和Runnable有几点不同:

 * (1)Callable规定的方法是call(),而Runnable规定的方法是run().

 * (2)Callable的任务执行后可返回值,而Runnable的任务是不能返回值的。

 * (3)call()方法可抛出异常,而run()方法是不能抛出异常的。

 * (4)运行Callable任务可拿到一个Future对象

Future表示异步计算的结果,它提供了检查计算是否完成的方法,以等待计算的完成,并检索计算的结果。Future的cancel方法可以取消任务的执行,它有一布尔参数,参数为 true 表示立即中断任务的执行,参数为 false 表示允许正在运行的任务运行完成。Future的 get 方法等待计算完成,获取计算结果

原文地址:https://www.cnblogs.com/kydnn/p/5234754.html