博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java线程同步:生产者-消费者 模型(代码示例)
阅读量:6922 次
发布时间:2019-06-27

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

public class ThreadSyn {		public static void main(String[] args) {		new ThreadSyn();	}	public ThreadSyn() {		Queue queue = new Queue();		Producter p = new Producter(queue);		Consumer c = new Consumer(queue);		p.start();		c.start();	}		// Queue模拟Java线程同步中的生产者消费者仓库、队列。	private class Queue {		int value; // 为了使例子简单,value即为假设长度为1的仓库、队列		boolean full = false;		public synchronized void put(int i) {			if (!full) {				value = i;				full = true;				notify();			}			try {				wait();			} catch (InterruptedException e) {				// e.printStackTrace();			}		}		public synchronized int get() {			if (!full)				try {					wait();				} catch (InterruptedException e) {					// e.printStackTrace();				}			full = false;			notify();			return value;		}	}		// Java线程同步模型-生产者	private class Producter extends Thread {		private Queue q;		public Producter(Queue q) {			this.q = q;		}		public void run() {			for (int i = 0; i < 20; i++) {				System.out.println("生产了:" + i);				q.put(i);			}		}	}	// Java线程同步模型-消费者	private class Consumer extends Thread {		private Queue q;		public Consumer(Queue q) {			this.q = q;		}		public void run() {			while (true) {				System.out.println("消费了:" + q.get());			}		}	}}

转载地址:http://xsujl.baihongyu.com/

你可能感兴趣的文章
ASP.NET下Word文档的在线编辑、保存和全文关键字搜索的完整示例
查看>>
SYBASE存储过程详解
查看>>
集体智慧算法
查看>>
压缩原理及无线的一点思考
查看>>
ifcfg-p1p1
查看>>
Linux磁盘和文件系统
查看>>
LINUX iptables防火墙规则的匹配条件
查看>>
linux解决磁盘indoe满了问题
查看>>
mysql索引的类型和优缺点
查看>>
CentOS-6.5 安装教程-配置篇-网卡配置
查看>>
Java取整数
查看>>
redis的存储的5种数据类型
查看>>
情感+事业,强者必学的定律
查看>>
Discovery CentOS6.4 issue
查看>>
元芳,这个Bug你怎么看
查看>>
日志管理(二)
查看>>
Vert.x 用JWT验证Web请求 译<十>
查看>>
明星软件工程师的10种特质
查看>>
redis哈希(hash)
查看>>
Linux进程优先级管理
查看>>