您的位置:首页 > 其它

文章标题

2017-09-25 11:39 232 查看
package day5;

public class WaitNotify {
public static void main(String[] args) {
MyserviceNew my = new MyserviceNew();
ThreadM th1 = new ThreadM(my);
th1.start();
ThreadN th2 = new ThreadN(my);
th2.start();
}
}
class MyserviceNew{
public static int value = 0;
//false代表前一个线程都在等待该线程打印
boolean flag =false;

}
class ThreadM extends Thread{
MyserviceNew myservice;
public ThreadM(MyserviceNew myservice) {
this.myservice = myservice;
}
@Override
public void run() {
synchronized(myservice) {
while(MyserviceNew.value<100) {
//System.out.println("even");
if(!myservice.flag) {
MyserviceNew.value++;
System.out.println("奇数"+MyserviceNew.value);
myservice.flag = true ;
myservice.notify();
try {
myservice.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}

}else {
try {
myservice.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

}
}
}
class ThreadN extends Thread{
MyserviceNew myservice;
public ThreadN(MyserviceNew myservice) {
this.myservice = myservice;
}
@Override
public void run() {
synchronized(myservice) {
while(MyserviceNew.value<100) {
//System.out.println("odd");
if(myservice.flag) {
MyserviceNew.value++;
System.out.println("偶数"+MyserviceNew.value);
myservice.flag = false;
try {
myservice.notify();
myservice.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
//myservice.flag = false;

}else {
try {
myservice.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  string class