1、死锁是指两个或两个以上的过程在实施过程中,由于竞争资源或相互通信而造成的堵塞现象,如果没有外力作用,就不能推进。
线程池死锁实例
2、解决办法:扩大线程池线程或任务结果不再相互依赖。
final executorservice executorservice = executors.newsinglethreadexecutor();future<long> f1 = executorservice.submit(new callable<long>() { public long call() throws exception { system.out.println(start f1); thread.sleep(1000);//延时 future<long> f2 = executorservice.submit(new callable<long>() { public long call() throws exception { system.out.println(start f2); return -1l; } }); system.out.println(result + f2.get()); system.out.println(end f1); return -1l; }});
以上就是如何处理java线程池中的死锁?的详细内容。