知识大全 Java线程;生产消费者例子
Posted 商品
篇首语:菜能吃,糠能吃,气不能吃;吃能让,穿能让,理不能让。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java线程;生产消费者例子相关的知识,希望对你有一定的参考价值。
Java线程;生产消费者例子 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
小小回顾 写了个简单的demo 项目中没有过 还能记得 纪念一下
产品的entity
Java代码
public class Product
//产品名称
private String name;
public String getName()
return name;
public void setName(String name)
this name = name;
生产者
Java代码
/**
* 生产者
* @author 饭香
*
*/
public class Producer implements Runnable
private Shop shop;//要去送货的商店
public Producer(Shop shop)
this shop=shop;
public void run()
for(int i= ;i< ;i++)
shop produ();
消费者
Java代码
/**
* 消费者
* @author 饭香
*
*/
public class Cousumer implements Runnable
private Shop shop;//要去消费的商店
public Cousumer(Shop shop)
this shop=shop;
public void run()
for(int i= ;i< ;i++)//消费 次
usu();
模拟商店(一切围绕商店 商店只能有一个 产品随便多个实例 这个也是别人问我总是出错的地方 对象思想)
Java代码
import java util ArrayList;
import java util List;
/**
* 模拟商店 (进货/销售)
* @author fx
*
*/
public class Shop
private static int i= ;
//产品的容器;达到容器暂停生产 消费到 等待生产
private static List<Product> list;
static
list= new ArrayList<Product>();
/**
* 生产产品
*/
public synchronized void produ()
if(list size()>= )
try
System out println( 生产商品 +i+ 时 达到了总数暂停生产 );
this wait();//进入休眠
catch (InterruptedException e)
System out println(e toString());
e=null;
//生产商品
Product product= new Product();
product setName( 商品 +i);
list add(product);
System out println( 生产了商品 > +product getName()+ 商品总数 +i);
System out println( 容器容量 +list size());
i++;
super notify();
/**
* 消费产品
* @return
*/
public synchronized void cousu()
if(list size()== )//消费完时 挂起
System out println( +++++++++++++++++++++++商品消费完了 等待+++++++++++++++= );
try
this wait();
catch (InterruptedException e)
// TODO Auto generated catch block
System out println(e toString());
e=null;
Product product=list get( );
list remove( );
System out println( 消费了获得了商品 > +product getName());
System out println( 容器容量 +list size());
super notify();
测试代码
Java代码
public static void main(String[] args)
Shop shop=new Shop();//商店
Producer pro=new Producer(shop);
Cousumer cou = new Cousumer(shop);
new Thread(pro pro ) start();
new Thread(cou cou ) start();
生产了商品 >商品 商品总数
容器容量
消费了获得了商品 >商品
容器容量
+++++++++++++++++++++++商品消费完了 等待+++++++++++++++=
生产了商品 >商品 商品总数
容器容量
消费了获得了商品 >商品
容器容量
+++++++++++++++++++++++商品消费完了 等待+++++++++++++++=
生产了商品 >商品 商品总数
容器容量
消费了获得了商品 >商品
容器容量
+++++++++++++++++++++++商品消费完了 等待+++++++++++++++=
生产了商品 >商品 商品总数
容器容量
生产了商品 >商品 商品总数
容器容量
消费了获得了商品 >商品
容器容量
生产了商品 >商品 商品总数
容器容量
消费了获得了商品 >商品
容器容量
生产了商品 >商品 商品总数
容器容量
消费了获得了商品 >商品
容器容量
消费了获得了商品 >商品
cha138/Article/program/Java/gj/201311/27600相关参考
Java多线程--生产者与消费者 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 模拟生产者与消费
由生产者/消费者问题看JAVA多线程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 生产者消费者
/*@authorshijin*生产者与消费者模型中要保证以下几点*同一时间内只能有一个生产者生产 生产方法加锁sychronized*同一时间内只能
JAVA一个简单的两个线程例子 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 于Java好的方面
网上参考别人的例子改自己的程序终于搞明白了原来在socket的服务器端设置线程并不是像之前想的那样建立一个连接后就重新开一个端口去监听这样的想法遇到了很多问题首先当我把客户端弄成for循环递增的链
C#多线程学习—生产者和消费者(2) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n
C#多线程学习—生产者和消费者(3) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n
C#多线程学习—生产者和消费者(1) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n
创建线程 在Java程序中创建线程有几种方法每个Java程序至少包含一个线程主线程其它线程都是通过Thread构造器或实例化继承类Thread的类来创建的 Java线程可以通过直接
Java多线程如何创建多个线程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Java多线程的同