java多线程例子(生成者和消费者)
2014-03-05 16:38
169 查看
Info.cs 商品
public class Info { boolean flag=false; private String name="张三"; private int age=30; public synchronized void set(String name,int age) { try { if(!flag) super.wait(); } catch(InterruptedException ex) { System.out.println(ex.getStackTrace()); } try { this.name=name; Thread.sleep(100); this.age=age; } catch(InterruptedException ex) { System.out.println(ex.getStackTrace()); } flag=false; super.notify(); //唤醒调用了wait的方法线程 } public synchronized void get() { try { if(flag) super.wait(); } catch (InterruptedException ex) { System.out.println(ex.getStackTrace()); } try { Thread.sleep(100); System.out.println("name:"+name+" age:"+age); } catch(InterruptedException ex) { System.out.println(ex.getStackTrace()); } flag=true; super.notify(); } }
Producter.cs 生产者类
public class Producter implements Runnable{ Info info=null; boolean flag=false; final int count=20; public Producter(Info info) { this.info=info; } public void run() { for(int i=0;i<count;i++) { if(flag) { this.info.set("张三",30); flag=false; } else { this.info.set("李四",40); flag=true; } } } }
Customer.cs 消费者类
public class Customer implements Runnable{ Info info; final int count=20; public Customer(Info info) { this.info=info; } public void run() { for(int i=0;i<count;i++) { info.get(); } } }
TestThread.cs 主类
public class TeshThread { public static void main(String[] args) { // TODO Auto-generated method stub Info info=new Info(); Producter p=new Producter(info); Customer c=new Customer(info); new Thread(p).start(); new Thread(c).start(); } }
运行结果:
name:张三 age:30 name:李四 age:40 name:张三 age:30 name:李四 age:40 name:张三 age:30 name:李四 age:40 name:张三 age:30 name:李四 age:40 name:张三 age:30 name:李四 age:40 name:张三 age:30 name:李四 age:40 name:张三 age:30 name:李四 age:40 name:张三 age:30 name:李四 age:40 name:张三 age:30 name:李四 age:40 name:张三 age:30 name:李四 age:40
相关文章推荐
- java多线程例子(生成者和消费者)
- 多线程之生产消费者【经典例子java】
- Java 多线程 简单实例 (消费者与生成者)的关系
- Java多线程生产者和消费者的例子
- java 多线程生产者和消费者例子
- Java多线程之简单生产者和消费者例子
- java 多线程经典例子——生产者与消费者的问题
- JAVA多线程实现生产者——消费者
- 一个简单的生产者与消费者的多线程例子(二):不让消费者或生产者无限期地等待
- java多线程一 基本实现方法、消费者生产者队列、死锁
- Java多线程之并发协作生产者消费者设计模式
- Java 多线程生产者和消费者代码示例
- java多线程入门例子
- java多线程解决生产者消费者问题
- [Java基础]多线程求和小例子
- JAVA多线程之——经典面试消费者与生产者
- java多线程之生产者和消费者经典问题案例
- Java多线程之生产者消费者问题
- (7)Java多线程之消费者/生产者模式
- 【java多线程】【生产者与消费者】【一】