public class ThreadTest {
private Object lock = new Object();
public void threadRunFirst() {
new Thread(new Runnable() {
@Override
public void run() {
threadRunSecond();
synchronized (lock) {
try {
lock.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
Log.i("ThreadTest", "threadRunFirst");
}
}).start();
}
public void threadRunSecond() {
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
Log.i("ThreadTest", "threadRunSecond");
synchronized (lock){
lock.notify();
}
}
}).start();
}
}
问题描述:
有这么一个需求,需要先执行threadRunFirst,然后执行threadRunSecond,要求必须要执行完threadRunSecond以后,threadRunFirst这个线程才可以执行结束,就是要求这两个线程按照预定的顺序执行,可以通过线程锁来实现这个需求。