今年,唯品会的一道笔试题是三个线程顺序打印ABC10次,当时写得很乱,也写错了,现在给出我的解决方法:
package deadLockThread;
public class PrintThread {
private static boolean flga1 = true;
private static boolean flga2 = false;
private static boolean flga3 = false;
public static void main(String[] args) {
final PrintThread o = new PrintThread();
Thread t1 = new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < 10; i++) {
while (true) {
synchronized (o) {
if (!flga1) {
try {
o.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else {
System.out.println(Thread.currentThread()
.getName());
flga1 = false;
flga2 = true;
flga3 = false;
o.notifyAll();
break;
}
}
}
}
}
}, &#