多线程编程模型

在多线程编程中常见的模型包括:

1.委托(boss-worker)模型

2.对等(peer-to-peer)模型

3.流水线(pipeline)模型

4.生产者-消费者(producer-consumer)模型

切记不要将各种模型相互独立起来,而应该根据工作分解结构(WBS)来决定在不同的阶段或部分应采用哪种模型最合适。

下面就上述4种模型做一个简单的介绍:

1.委托模型

简而言之就是一个boss线程创建其他的worker线程,并给每个创建的worker线程指派任务。boss线程的主要作用是:a:创建所有的线程;b:将工作(task)放置到队列中;c:当工作需要处理时,唤醒worker线程。worker线程的主要作用是:a:检查队列中的请求;b:执行被指派的任务;c:如果没有可供处理的工作,则将自己挂起。

2.对等模型

相对于委托模型,在对等模型中,所有线程处于一个平等的工作状态,即所有线程都是worker线程,但会有一个线程在最初时创建所需要的全部线程,但该线程没有委派工作的功能。

3.流水线模型

用流水线生产线来描述流水线模型是比较恰当的,打个比方就能对该模型有一个初步的了解了。假设现有一篇文档A,需要把其中的标点符号,副词和感叹词全部去掉,可以创建3个线程,姑且记为T1,T2,T3,用T1处理标点符号,T2处理副词,T3处理感叹词。首先用T1处理文档A,将得到的新文档B传给T2,在T2处理完后,将得到的新文档C传给T3处理,直至T3处理完毕,一个流程完成。

4.生产者-消费者模型

在该模型中,producer线程负责产生数据,而consumer线程负责消费数据。该模型在大规模程序和应用中,也被称作客户端-服务器模型。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值