package com;
public class TestLock {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
LockSplit data = new LockSplit();
Thread t1 = new Thread1(data);
Thread t2 = new Thread2(data);
t1.start();
t2.start();
;
}
}
class Thread1 extends Thread{
private LockSplit data;
public Thread1(LockSplit data){
this.data=data;
}
@Override
public void run() {
data.hello();
}
}
class Thread2 extends Thread{
private LockSplit data;
public Thread2(LockSplit data){
this.data=data;
}
@Override
public void run() {
data.world();
//data.hello(1000);
}
}
class LockSplit{
protected final Object locationLock = new Object();
public void hello(){
synchronized (locationLock) {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("hello");
}
}
public void world(){
synchronized (locationLock) {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("world");
}
}
}