zoukankan      html  css  js  c++  java
  • 生产者消费者

    package Test.test;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class Plate {
    
        List<Object> eggs = new ArrayList<Object>();
    
        public synchronized Object getEgg() {
            while(eggs.size() == 0) {
                try {
                    wait();
                } catch (InterruptedException e) {
                }
            }
    
            Object egg = eggs.get(0);
            eggs.clear();// 清空盘子
            notify();// 唤醒阻塞队列的某线程到就绪队列
            System.out.println("拿到鸡蛋");
            return egg;
        }
    
        public synchronized void putEgg(Object egg) {
            while(eggs.size() > 0) {
                try {
                    wait();
                } catch (InterruptedException e) {
                }
            }
            eggs.add(egg);// 往盘子里放鸡蛋
            notify();// 唤醒阻塞队列的某线程到就绪队列
            System.out.println("放入鸡蛋");
        }
        
        static class AddThread extends Thread{
            private Plate plate;
            private Object egg=new Object();
            public AddThread(Plate plate){
                this.plate=plate;
            }
            
            public void run(){
                for(int i=0;i<5;i++){
                    plate.putEgg(egg);
                }
            }
        }
        
        static class GetThread extends Thread{
            private Plate plate;
            public GetThread(Plate plate){
                this.plate=plate;
            }
            
            public void run(){
                for(int i=0;i<5;i++){
                    plate.getEgg();
                }
            }
        }
        
        public static void main(String args[]){
            try {
                Plate plate=new Plate();
                Thread add=new Thread(new AddThread(plate));
                Thread get=new Thread(new GetThread(plate));
                add.start();
                get.start();
                add.join();
                get.join();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("测试结束");
        }
    }
    

      

  • 相关阅读:
    /etc/security/limits.conf 配置
    docker 私有仓库镜像的存储位置
    docker 私有仓库镜像的存储位置
    docker 数据映射方案
    docker 数据映射方案
    docker 容器开启ssh服务
    docker 容器开启ssh服务
    docker 容器扩盘
    docker 容器扩盘
    Python爬虫从入门到精通——基本库re的使用:正则表达式
  • 原文地址:https://www.cnblogs.com/king-/p/4832231.html
Copyright © 2011-2022 走看看