10-13 招银面试,让写一下两个线程交替打印1-100,脑抽没写出来……在这里记录一下
package cuoxianc;
/**
* @author Caida
* -- 两个线程交替打印1到100
*/
public class Test {
int i = 1;
public static void main(String[] args) {
Test obj = new Test();
Runnable worker = new Runnable() {
@Override
public void run() {
while(obj.i <= 100){
Thread thread = Thread.currentThread();
synchronized (this){
notify(); // 唤醒在等待的线程
if(obj.i <= 100){
System.out.println(thread.getName()+"==>"+obj.i);
obj.i++;
}
try {
// 打印完100,就不用再等待了
if(obj.i <= 100) wait(); // 等待,直到被唤醒
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
};
new Thread(worker, "Thread-A").start();
new Thread(worker, "Thread-B").start();
}
}
我人大概率是没了…………,一开始就想到什么CountLanch上面,其实就是简单的拿锁等待操作
难受~