题目大致意思是这样:两个线程 交替输出奇偶数 ,到99 例子:0 1 2 3 4 5....99
和输出abc类似:https://blog.csdn.net/qq_39512671/article/details/81163345
考完回想一下写的和屎一样
package com.czy.coweroffer;
public class ThreadMany {
public static void main(String[] args) {
final MyHandle handle=new MyHandle();
T1 one=new T1(handle);
T2 two=new T2(handle);
Thread oneT=new Thread(one);
Thread twoT=new Thread(two);
twoT.start();
oneT.start();
}
}
class T1 implements Runnable{
private MyHandle handle=new MyHandle();
public T1(MyHandle handle){
this.handle=handle;
}
@Override
public void run() {
for(int i=0;i<=50;i++){
handle.t1();
}
}
}
class T2 implements Runnable{
private MyHandle handle=new MyHandle();
public T2(MyHandle handle){
this.handle=handle;
}
@Override
public void run() {
for(int i=0;i<=50;i++){
handle.t2();
}
}
}
class MyHandle{
private int i=0;
public synchronized void t1(){
while((i&1)!=0 && i<=99 ){
try {
this.wait();
} catch (InterruptedException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
if(i<=99) System.out.print(i +" ");
i++;
notify();
}
public synchronized void t2(){
while((i&1)!=1 && i<=99 ){
try {
this.wait();
} catch (InterruptedException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
if(i<=99) System.out.print(i +" ");
i++;
notify();
}
}
}