概述
2019独角兽企业重金招聘Python工程师标准>>>
我来滥竽充数一篇文章,LockSupport
和synchronized
果然不能混着用,直接造成死锁。
package test;
import java.util.concurrent.locks.LockSupport;
/**
* @author Wei.Chou(weichou2010@gmail.com)
* @version 1.0, 12/08/2016
*/
public class ParkTest {
public static void main(String[] args) {
final Thread thread = new Thread() {
@Override
public void run() {
System.out.println("thread started");
synchronized (ParkTest.class) {
System.out.println("thread park");
LockSupport.park();
System.out.println("thread release");
}
}
};
thread.start();
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
new Thread() {
@Override
public void run() {
System.out.println("thread1 started");
// TODO: 16/8/12 果然死锁
synchronized (ParkTest.class) {
System.out.println("thread1 unpark");
LockSupport.unpark(thread);
System.out.println("thread1 end");
}
}
}.start();
}
}
转载于:https://my.oschina.net/weichou/blog/731455
最后
以上就是爱笑果汁为你收集整理的LockSupport和synchronized混合死锁问题的全部内容,希望文章能够帮你解决LockSupport和synchronized混合死锁问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复