Posts tagged: thread

用java5提供的阻塞队列实现生产者消费者示例

到了java5,实现数据同步就更简单了。甚至不需要写synchronized和wait/notify。 因为java5提供了阻塞队列,即: java.util.concurrent.BlockingQueue 用它写一个单消费者和单生产者的示例,基本如下:    发送文章为PDF   

星期二 十二月 29th, 2009 in , , | No Comments »

java实现多生产者多消费者示例

再将java实现多个消费者的生产者消费者示例做一下扩展,实现多生产者,多消费者的示例。 运行效果类似这样: 在不同操作系统,显示的次序可能差异较大,我这里是在ubuntu linux下的演示效果。 示例改动不大,只是增加标记用的序号。 示例见: http://easymorse.googlecode.com/svn/tags/thread.demo-1.2/    发送文章为PDF   

星期二 十二月 29th, 2009 in , , | No Comments »

java实现多个消费者的生产者消费者示例

在最简单的java生产者消费者示例基础上稍作修改,可以展示多个消费者对一个生产者的示例。 只是在原来的消费者代码上增加打印消费者的序号,这样便于区分。 产生的效果类似: 类似乱序或者轮询的消费。 源代码见: http://easymorse.googlecode.com/svn/tags/thread.demo-1.1/ 日志引用java实现多生产者多消费者示例    发送文章为PDF   

星期二 十二月 29th, 2009 in , , | No Comments »

最简单的java生产者消费者示例

写了一个最简单的生产者消费者示例。一个线程向List中加入字符串,比如s0、s1、s2 … ,另外一个线程读取列表中第一个字符串,然后删除,相当于消费了。 虽然简单,但是基本上可以演示线程同步的主要功能,即对管程(monitor)的操作。学过操作系统都应该知道信号量和原语,用于对互斥的线程资源的调用。管程提供更高级的功能,编写起来更容易。 java使用了管程的概念,每个Object对象,都有一个内置的管程(monitor),因此可以通过wait/notify/synchronized机制产生对资源的互斥使用。因为java是单根的,因此可以说所有类对象都包含管程。 示例代码见: http://easymorse.googlecode.com/svn/tags/thread.demo-1.0/ 日志引用java实现多个消费者的生产者消费者示例    发送文章为PDF   

星期二 十二月 29th, 2009 in , , | No Comments »