- 0
- 0
- 约5.67千字
- 约 5页
- 2026-01-08 发布于四川
- 举报
—
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)