博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
生产者消费者阻塞队列
阅读量:5112 次
发布时间:2019-06-13

本文共 1912 字,大约阅读时间需要 6 分钟。

package html;import java.util.LinkedList;import java.util.List;public class KF {    public static void main(String[] args) {        BlockList list = new BlockList(10);        new Thread(new Productor(list)).start();        new Thread(new Consumer(list)).start();    }    static class Productor implements Runnable {        BlockList list;        public Productor(BlockList list) {            this.list = list;        }        @Override        public void run() {            int i = 0;            while (true) {                System.err.println("put:" + i);                list.put(i++);            }        }    }    static class Consumer implements Runnable {        BlockList list;        public Consumer(BlockList list) {            this.list = list;        }        @Override        public void run() {            while (true) {                Object obj = list.get();                System.err.println("get:" + obj);            }        }    }}class BlockList {    List list;    int capacity;    public BlockList(int capacity) {        this.capacity = capacity;        list = new LinkedList<>();    }    public boolean put(Object obj) {        synchronized (list) {            while (list.size() >= capacity) {                try {                    list.wait();                } catch (InterruptedException e) {                    e.printStackTrace();                }            }            list.add(obj);            list.notifyAll();        }        return false;    }    public Object get() {        Object obj = null;        synchronized (list) {            while (list.isEmpty()) {                try {                    list.wait();                } catch (InterruptedException e) {                    e.printStackTrace();                }            }            obj = list.remove(0);            list.notifyAll();        }        return obj;    }}

 

转载于:https://www.cnblogs.com/jpit/p/7404557.html

你可能感兴趣的文章
Spring MVC @ResponseBody返回中文字符串乱码问题
查看>>
用户空间与内核空间,进程上下文与中断上下文[总结]
查看>>
JS 中的跨域请求
查看>>
JAVA开发环境搭建
查看>>
mysql基础语句
查看>>
Oracle中的rownum不能使用大于>的问题
查看>>
cassandra vs mongo (1)存储引擎
查看>>
Visual Studio基于CMake配置opencv1.0.0、opencv2.2
查看>>
遍历Map对象
查看>>
MySQL索引背后的数据结构及算法原理
查看>>
#Leetcode# 209. Minimum Size Subarray Sum
查看>>
SDN第四次作业
查看>>
DM8168 DVRRDK软件框架研究
查看>>
django迁移数据库错误
查看>>
yii 跳转页面
查看>>
洛谷 1449——后缀表达式(线性数据结构)
查看>>
Data truncation: Out of range value for column 'Quality' at row 1
查看>>
Dirichlet分布深入理解
查看>>
(转)Android之发送短信的两种方式
查看>>
字符串处理
查看>>