多线程【交替打印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();

    }
}
经验分享 程序员 微信小程序 职场和发展