黑马程序员技术交流社区
标题:
晒晒死锁,哎!多线程得好好学习,难啊~
[打印本页]
作者:
黑马黄文龙
时间:
2012-12-10 21:25
标题:
晒晒死锁,哎!多线程得好好学习,难啊~
/*
创建一个测试类,里面有两个A类对象,然后建立两个线程,分别给线程的构造器传参数
th1(sj1,sj2),th2(sj2,sj1),再创建一个测试类,然后启动两个线程
*/
public class DieLockTest {
public static void main(String[] args) {
ShuJu sj1=new ShuJu();
ShuJu sj2=new ShuJu();
Thread th1=new ThreadTest(sj1,sj2);
Thread th2=new ThreadTest(sj2,sj1);
th1.start();
th2.start();
}
}
//创建一个线程类,有两个属性,为A类属性,为线程类构造器传参数
//重写run()方法,然后里面有一个A类的引用调用fun1(),参数为A类
//对象
class ThreadTest extends Thread{
private ShuJu sj1;
private ShuJu sj2;
public ThreadTest(ShuJu sj1,ShuJu sj2){
this.sj1=sj1;
this.sj2=sj2;
}
public void run(){
sj1.fun1(sj2);
}
}
//定义一个数据类,里面有两个同步方法,为了实现死锁,让一个方法的参数为本类类型
//然后为了使效果明显一些,我们使线程sleep一会
class ShuJu{
public synchronized void fun1(ShuJu sj){
String str=Thread.currentThread().getName();
System.out.println(str+" "+"準備死鎖");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
sj.fun2();
}
public synchronized void fun2(){}
}
复制代码
作者:
许庭洲
时间:
2012-12-11 08:07
值得学习ing!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2