永发信息网

java怎么编程写一个能导致死锁的程序

答案:2  悬赏:80  手机版
解决时间 2021-01-03 12:26
java怎么编程写一个能导致死锁的程序
最佳答案
额,这么简单,就直接定义一个类,该类随便定义实例化个Object对象,然后在类中再定义2个内部线程类,线程一,对object使用synchronized,在synchronized块中用个while(true)的死循环就好了,线程二,对object也是使用synchronized同步,至于synchronized块中干啥,你自己看着办,反正线程一死循环不会释放object对象锁,线程二是执行不到里面的代码块的
全部回答
在编程中使用threadmxbean类来检测死锁   java 5引入了threadmxbean接口,它提供了多种监视线程的方法。我建议您了解所有这些方法,因为当您没使用外部工具时,它们会为您提供很多有用的操作以便您监测程序性能。这里,我们感兴趣的方法是findmonitordeadlockedthreads,如过您使用的是java 6,对应的方法是finddeadlockedthreads。二者的区别的是,finddeadlockedthreads还可以检测到owner locks(java.util.concurrent)引起的死锁,而findmonitordeadlockedthreads只能检测monitor locks(例如,同步块)。由于保留老版本的方法只是出于兼容性的考虑,所以我将使用新版本的方法。在这里,编程的思想是把对死锁的周期性检测封装到一个可重用组件里,之后我们只需启动它、随它去。   一种实现调度的方法是通过执行器框架,即一组良好抽象并易于使用的多线程类。   scheduledexecutorservice scheduler = executors.newscheduledthreadpool(1);   this.scheduler.scheduleatfixedrate(deadlockcheck, period, period, unit);   就是那么简单,在我们通过选择周期和时间单位而设置了一个特定时间后,就得到了一个周期性调用的线程。接着,我们想使功用得以拓展从而允许用户提供在程序检测到死锁时所触发的行为。最后,我们需要一个方法来接收用于描述死锁中所有线程的一系列对象。   void handledeadlock(final threadinfo[] deadlockedthreads);
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
公安局交通警察大队车辆管理所地址在哪?我要
如图所示,用水平外力F将木块压在竖直墙面上
滴滴快车怎么收费
直接算出得数.7.8×0.5=3.78÷6=8.1÷0.9=98
单选题Howbeautifultheapples________thetr
我家在四楼买了个一百二十瓦的增压泵水压还是
属猴的明星有哪些
假定你叫李华,最近,你的好友林浩来信说他升
10月底想在选个国际线路旅游,巴厘岛、普吉岛
景德镇市公安局交通警察支队地址有知道的么?
乐平市公安局交通警察大队办公地址在什么地方
6个月的宝宝要含着奶头才能睡!,就三天晚上是
---Have you finished your work yet? ---No
签名闫方园怎么写好看
一个数,它的亿位和万位都是7,个位是6,其它
推荐资讯
魔兽6.23能改装备属性呢?
为什么说矛盾是指事物内部或事物之间关系
传统企业如何更好的转型?
(1)当电冰箱的压缩机(由感温开关自动控制
宜春到铜鼓要多久
单选题在歌舞晚会上,常利用干冰产生白雾来烘
一个人租房还是合租好
动力和电力是什么意思
宏村派出所办公地址在什么地方?我要处理点事
用所给词的适当形式填空。【小题1】Hearing t
陕州区烟草专卖局市场监管稽查中队办公地址在
快乐大本营有一期玩了一个愤怒的小鸟的游戏
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?