package com.Thread;
public class DeathSynchronized {
public static void main(String[] args) {
//资源
Object g = new Object();
Object m = new Object();
//创建线程
Test1 t1 = new Test1(g,m);
Test2 t2 = new Test2(g,m);
Thread proxy = new Thread(t1);
Thread proxy2 = new Thread(t2);
//启动线程
proxy.start();
proxy2.start();
}
}
class Test1 implements Runnable {
Object goods ;
Object money ;
public Test1(Object goods, Object money) {
this.goods = goods;
this.money = money;
}
@Override
public void run() {
while(true ) {
try {
test();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void test(){
synchronized(goods ){
try {
Thread. sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized(money ){
}
System. out.println("一挥手交钱、、、、" );
}
}
}
class Test2 implements Runnable {
Object goods ;
Object money ;
public Test2(Object goods, Object money) {
this.goods = goods;
this.money = money;
}
@Override
public void run() {
while(true ) {
try {
test();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void test (){
synchronized(money ){
try {
Thread. sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized(goods ){
}
System. out.println("一挥手交huo、、、、" );
}
}
}