• 线程实现输出结果为100对(1,0)


    public class IntData {
       private int num=0;
       private boolean isProduced=false;
       public synchronized void puShareChar() {
        //如果产品还没有消费,则生产者等待
        if (isProduced) {
           try {
            wait();//生产者等待
           } catch (InterruptedException e) {
            e.printStackTrace();
         }
      }
      this.num++;
      isProduced=true;//标记已经生产
      notify();//通知消费者已经生产,可以消费
      System.out.println(num);
     }
     public synchronized int getShareChar() {
      //产品还没有生产,则消费者等待
        if (!isProduced) {
         try {
          wait();//消费者等待
         } catch (InterruptedException e) {
          e.printStackTrace();
         }
      }
      isProduced=false;//标记已经消费
      notify();//通知需要生产
      this.num--;
      System.out.println(this.num);
      return this.num;
     }
    }

    public class IntJia extends Thread {
       private IntData intData;
       public IntJia(IntData intData){
        this.intData=intData;
       }
       public void run() {
          for(int ch=1;ch<100;ch++){
             try {
              Thread.sleep(1);
           } catch (InterruptedException e) {
            e.printStackTrace();
         }
         intData.puShareChar();//将产品放入仓库
        }
       }
    }

    public class IntJIan extends Thread{
       private IntData intData;
       public IntJIan(IntData intData){
        this.intData=intData;
     }
     public void run() {
     
      for(int ch=1;ch<100;ch++){
       try {
        Thread.sleep(1);
       } catch (InterruptedException e) {
        e.printStackTrace();
       }
       ch=intData.getShareChar();//将产品放入仓库
       System.out.println();
      }
      
     }
     
    }

    public class TestInt {
     public static void main(String[] args) {
      IntData intData=new IntData();
      new IntJia(intData).start();
      new IntJIan(intData).start();
     }
    }

  • 相关阅读:
    Webpack 从0开始
    MongoDB 从0开始
    Generator & Co
    Rem & Viewport
    Gulp 之二
    关于CSS动画几点要注意的地方
    移动端的click
    Gulp browserify livereload
    Javascript 设计模式笔记
    JS 继承
  • 原文地址:https://www.cnblogs.com/lanliying/p/3177480.html
Copyright © 2020-2023  润新知