zoukankan      html  css  js  c++  java
  • 线程实现输出结果为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();
     }
    }

  • 相关阅读:
    PHP-Resque 简介
    基于Redis的消息队列php-resque
    sms_queue 短信队列
    那些最好的轮子
    Sphinx高亮显示关键字
    atitit.系统托盘图标的设计java swing c# .net c++ js
    atitit.验证码识别step4--------图形二值化 灰度化
    atitit.验证码识别step3----去除边框---- 图像处理类库 attilax总结java版本
    atitit.验证码识别step2------剪贴板ClipBoard copy image图像 attilax总结
    atitit.loading的设计与实现控件选型attilax 总结
  • 原文地址:https://www.cnblogs.com/lanliying/p/3177480.html
Copyright © 2011-2022 走看看