黑马程序员技术交流社区
标题:
有谁能给个短小精悍的死锁小程序,记不住啊?
[打印本页]
作者:
旭辉lin
时间:
2014-9-3 16:38
标题:
有谁能给个短小精悍的死锁小程序,记不住啊?
本帖最后由 旭辉lin 于 2014-9-4 09:30 编辑
死锁小程序!记下来,以后也好应对面试。
作者:
xiayoutianxia
时间:
2014-9-3 20:31
毕老师的视频里有啊,你要嫌长就百度一个
作者:
旭辉lin
时间:
2014-9-4 09:29
public class Sisuo implements Runnable {
Object obj1 = new Object();
Object obj2 = new Object();
@Override
public void run() {
if (Thread.currentThread().getName().equals("t1")) {
while (true) {
synchronized (obj1) {
System.out.println("线程t1锁定obj1");
synchronized (obj2) {
System.out.println("线程t1锁定obj2");
}
}
}
} else {
while (true) {
synchronized (obj2) {
System.out.println("线程t2锁定obj2");
synchronized (obj1) {
System.out.println("线程t2锁定obj1");
}
}
}
}
}
public static void main(String[] args) {
Sisuo sisuo=new Sisuo();
Thread t1 = new Thread(sisuo, "t1");
Thread t2 = new Thread(sisuo, "t2");
t1.start();
t2.start();
}
}
复制代码
作者:
喜爱
时间:
2014-9-4 09:51
循环中嵌套循环就会出现死锁
作者:
Mokill0911
时间:
2014-9-4 16:56
class Deadlock implements Runnable
{
private boolean flag;
Deadlock(boolean flag)
{
this.flag= flag;
}
public void run()
{
if(flag)
{
synchronized(Mylock.locka)
{
System.out.println("if...locka..");
synchronized(Mylock.lockb)
{
System.out.println("if...lockb..");
}
}
}
else
{
synchronized(Mylock.lockb)
{
System.out.println("else...lockb..");
synchronized(Mylock.locka)
{
System.out.println("else...locka..");
}
}
}
}
}
class Mylock
{
static Object locka= new Object();
static Object lockb= new Object();
}
class DeadlockTest
{
public static void main(String[] args)
{
Deadlock lock_1=new Deadlock(true);
Deadlock lock_2=new Deadlock(false);
Thread t1= new Thread(lock_1);
Thread t2= new Thread(lock_2);
t1.start();
t2.start();
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2