生产者消费者模式与线程安全类应用.pdfVIP

  • 0
  • 0
  • 约5.67千字
  • 约 5页
  • 2026-01-08 发布于四川
  • 举报

生产者消费者模式与线程安全类应用.pdf

StringBuffer属于线程安全的类;StringBuilder、ArrayList、HashMap是非线程安全类。

在工作中,可能会碰到这样一种情况:某个模块负责产生数据,这些数据由另一个模块来负责处理。产生

数据的模块,则形象地称为生产者;而处理数据的模块,则称为消费者。在生产者与消费者之间在加个缓

冲区,我们形象的称之为仓库,生产者负责往仓库了进商品,而消费者负责从仓库里拿商品,这就构成了

生产者消费者模式。生产者和消费者模型的结构如图-1所示。

图-1

在实际工作中,典型的生产者消费者模型的案例是流现在。流是生产者;流播

放是消费者,如图-2所示。

图-2

以下案例使用BlockingQueue实现生产者和消费者模型,模拟了流数据和的过程。实

现此案例需要按照如下步骤进行。

步骤一:创建生产者

首先新建Donwload类,在该类中模拟数据的过程,其中BlockingQueue对象则是在上文中提到的缓

冲区,Donwload对象负责向该缓冲区数据,代码如下所示:

1.importjava.util.concurrent.BlockingQueue;

2.

3.

4.

5.publicclassDonwloadimplementsRunnable

{6.

7.privatefinalBlockingQueueObjectqueue;

8.

9.publicDonwload(BlockingQueueObjectq)

{10.

11.queue=q;

12.

13.}

14.

15.publicvoidrun()

{16.

17.try{

18.

19.while(true){

20.

21.System.out.println(数

据+index);

22.

23.queue.put(produce());

24.

25.}

26.

27.}catch(InterruptedExceptionex){

28.

29.}

30.

31.}

32.

33.intindex=0;

34.

35.publicObjectproduce(){

36.

文档评论(0)

1亿VIP精品文档

相关文档