多线程【交替打印1-1000】
多线程:交替打印1-1000
package com.xujie.gittext;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author 许缘
* @company xxx公司
* @create 2023-02-05 16:04
* 两个线程交替打印1-1000
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Demo01 implements Runnable{
private Integer num;
private boolean flag;
private Object obj;
@Override
public void run() {
synchronized (obj){
while (num<=1000){
if(flag){
flag=false;
}else{
try {
//挂起
obj.wait();
}catch (Exception e){
}
}
System.out.println(Thread.currentThread().getName()+"=="+num);
//唤醒
obj.notify();
num+=2;
}
}
}
public static void main(String[] args) {
Object o = new Object();
Demo01 demo01 = new Demo01(1,true,o);
Demo01 demo02 = new Demo01(2,false,o);
Thread thread = new Thread(demo01);
Thread threads = new Thread(demo02);
threads.start();
thread.start();
}
}
