Process VS Thread
行程:
适合一次最多一个工作(unix shell)
优点:
缺点:
不同行程不会共享记忆体行程间一部份停止,整个行程会一起停行程创建和内容转换经济成本高可扩展性低执行绪:
适合一次可多个工作
平行(Parallelism)VS并行(Concurrency)
平行(Parallelism)
资料平行(data parallelism):每个核心执行相同操作任务平行(task parallelism):每个核心执行不同操作
并行(Concurrency)
优点:
应答:程式一部份停止,其他部分能持续运作资源分享:执行绪间公用行程资源,比共用记忆体和讯息分享还快经济:比行程便宜可扩展性:可让不同CPU平行执行缺点:
User Thread VS kernel Thread
User Thread
使用者层次
三种主要执行绪程式库:POSIX PthreadsWin32执行绪Java执行绪优点:
管理较快,成本低缺点:
行程中的某个Thread停止,整个行程会停下kernel Thread
kernel管理
优点:
行程中的某个Thread停止,整个行程不会停下缺点:
管理较慢,成本高
多对一
优缺点同于User Thread
一对一
优缺点同于 kernel Thread
多对多
许多使用者执行绪对应到许多核心执行绪
二层模式
和多对多相似,但允许一个使用者执行绪被绑到核心执行绪
隐式执行绪(Implicit Threading)
执行绪池(Thread Pool)
先产生一些执行绪放入池中,等待工作
现成的 Thread,执行较快Thread数目限于pool执行和产生分开OpenMP
可在共用记忆体下的平行资源Grand Central Dispatch
区块放入分派伫列
串列:每一个行程有自己的串列伫列,称为主伫列并行:FIFO的顺序移除,但一次可以移除数个信号(signal)
通知行程,一个特殊的事件已经发生了,预设信号处理器(default signal handler)处理信号
目标执行绪(target thread)
被取消的执行绪,执行绪抵达取消点(cancellation point),后清除处理器(cleanup handle)会被呼叫
非同步取消(asynchronous cancellation)立即终止目标执行绪延迟取消(deferred cancellation)允许目标执行绪週期地检查它
执行绪的局部储存(Thread-local storage , TLS)
允许每一个执行绪有自己的资料拷贝排班程式活化作用
轻量级行程(lightweight process, LWP)