java线程池死锁的产生及处理

说明

1、死锁是指两个或两个以上的过程在实施过程中,由于竞争资源或相互通信而造成的堵塞现象,如果没有外力作用,就不能推进。

线程池死锁实例

2、解决办法:扩大线程池线程或任务结果不再相互依赖。

finalExecutorServiceexecutorService=
Executors.newSingleThreadExecutor();
Future<Long>f1=executorService.submit(newCallable<Long>(){

publicLongcall()throwsException{
System.out.println("startf1");
Thread.sleep(1000);//延时
Future<Long>f2=
executorService.submit(newCallable<Long>(){

publicLongcall()throwsException{
System.out.println("startf2");
return-1L;
}
});
System.out.println("result"+f2.get());
System.out.println("endf1");
return-1L;
}
});

以上就是java线程池死锁的产生及处理,希望对大家有所帮助。更多Java学习指路:Java基础

原文来自:https://www.py.cn
© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容