先上代码
class Test
{
public static void main(String []args)
{
Queue q=new Queue();
Producer p=new Producer(q);
Consumer c=new Consumer(q);
p.start();
c.start();
}
}
class Producer extends Thread
{
Queue q;
Producer(Queue q)
{
this.q=q;
}
public void run()
{
for(int i=0;i<10;i++)
{
q.put(i);
System.out.println("Producer put"+i);
}
}
}
class Consumer extends Thread
{
Queue q;
Consumer(Queue q)
{
this.q=q;
}
public void run()
{
while(true)
{
System.out.println("Consumer get"+q.get());
}
}
}
class Queue
{
int value;
boolean bFull=false;
public synchronized void put(int i)
{
if(!bFull)
{
value=i;
bFull=true;
notify();
}
try{
wait();
}
catch(Exception e)
{}
}
public synchronized int get()
{
if(!bFull)
{
try
{
wait();
}
catch(Exception e)
{
}
}
bFull=false;
notify();
return value;
}
}
运行结果
Producer put0
Consumer get0
Consumer get1
Producer put1
Consumer get2
Producer put2
Consumer get3
Producer put3
Consumer get4
Producer put4
Consumer get5
Producer put5
Consumer get6
Producer put6
Consumer get7
Producer put7
Consumer get8
Producer put8
Consumer get9
Producer put9
分享到:
相关推荐
Java小程序:解决线程同步--生产者消费者问题,直观简单,容易理解,希望对初学者有帮助。
本代码是用JAVA实现的生产者与消费者的问题,线程间的同步与互斥功能
Java线程:并发协作-生产者消费者模型 Java线程:并发协作-死锁 Java线程:volatile关键字 Java线程:新特征-线程池 Java线程:新特征-有返回值的线程 Java线程:新特征-锁(上) Java线程:新特征-锁(下) Java...
Java线程:并发协作-生产者消费者模型 Java线程:并发协作-死锁 Java线程:volatile关键字 Java线程:新特征-线程池 Java线程:新特征-有返回值的线程 Java线程:新特征-锁(上) Java线程:新特征-锁(下) ...
编写一个“生产者-消费者”的多线程演示程序,两个生产者,一个消费者,可以存放产品的仓库容量为10,仓库用栈实现,并有同步功能,且能防止先消费后生产的情况。
Java线程:并发协作-生产者消费者模型 Java线程:并发协作-死锁 Java线程:volatile关键字 Java线程:新特征-线程池 Java线程:新特征-有返回值的线程 Java线程:新特征-锁(上) Java线程:新特征-锁(下) Java...
Java线程:概念与原理 2 一、操作系统中线程和进程的概念 2 二、Java中的线程 3 三、Java中关于线程的名词解释...Java线程:并发协作-生产者消费者模型 52 Java线程:并发协作-死锁 55 Java线程:线程之间的数据传递 58
经典线程同步问题(生产者&消费者)--Java实现
用java多线程,实现生产者消费者同步和互斥的问题,操作系统中的经典问题
基本满足操作系统课上要求,java实现的生产者消费者模型。
生产者消费者模式是java多线程经典的安全,它用到了同步,资源共享,wait,notify等技术。
生产者消费者问题 Java实现 线程同步 线程通信生产者消费者问题 Java实现 线程同步 线程通信生产者消费者问题 Java实现 线程同步 线程通信
java多线程实现生产者消费者关系,完成线程之间的同步。
同步锁 线程 生产者消费者问题 适合新手的线程练习
java线程同步程序:消费者与生产者………………………………………………………………………………………………………………………………………………………………………………………………………………………………...
为了保护数据,使得两个线程互斥访问临界资源。 本代码根据生成者消费者问题,编写java线程同步代码。
此程序描述了java线程中的一个经典的问题,即生产者与消费者问题,很好的描述了线程同步的问题。
利用Java多线程实现的操作系统的生产者与消费者算法,主要用到了线程的同步,等待与唤醒操作。