linux 多线程编程基础(二)
常见的多线程 线程模型:
(1)委托模型(delegation) boss-worker模型
(2)对等模型
(3)管道模型
(4)生产者-消费者模型(producer-consumer)
委托模型:
boss进程创建其他进程(worker进程) 并给每个worker分配任务
Boss进程将任务委托给worker线程是通过指定一个函数来完成的
基于以上演变出两类:
浪费型:接收到请求任务,boss进程就创建一个worker进程 但是不可能无止境的创建进程,因此仅适用于试验型或是请求不多
节约型:boss进程创建一个线程池,可以为池中的线程指派任务.当有任务到达时,boss线程发信号通知worker仅此能够进行处理,该worker进程处理完成接着处理下一个请求,如果没有请求,就挂起自身,知道收到
一般软件优化分为三个方面:
(1)系统层面的优化:内存不足,CPU运算速度等
(2)应用层面的优化:算法优化,并行设计
(3)微架构层面额优化;分支预测,数据结构优化,指令优化]
这里介绍应用层面的优化:(1)将采用多线程和CPU亲和力技术;微架构方面采用CAche优化