需求:写一个多线程死锁程序。
思路:1、创建一个类Test 实现Runnable接口,并把任务封装到run()方法中。
2、任务代码中用到两个同步代码块,并实现任务切换,来实现死锁。
3,或者用同步函数和同步代码块,但能发现this锁的特殊。
第一种方法是,用两个同步代码块嵌套,来实现死锁。
package cm;
public class DeadLock {
public static void main(String []args){
Test t=new Test();
Thread s=new Thread(t,"one");
Thread s1=new Thread(t,"two");
s.start();
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
t.flag=false;
s1.start();
}
}
class Test implements Runnable{
boolean flag=true;
Object obj =new Object();
Object obj1 =new Object();
public void run() {
if(flag)
{
while(true)
{ synchronized(obj){
System.out.println(Thread.currentThread()+"...lock obj.....");
try