jam*_*her 46 parallel-processing concurrency multithreading process fiber
我正在阅读并发性.对于那些含有令人困惑的类似定义的术语,我有点过头了.即:
我的印象是,区别在于(1)是真正的并行还是多路复用; (2)是在CPU,OS还是在程序中管理; 和(3..5)我无法辨认的其他一些事情.
这些并行方法之间的差异是否有简明扼要的指导?
Gia*_*ian 56
好的,我会尽我所能.到处都有警告,但我会尽我所能来理解这些术语,并引用与我给出的定义相近的东西.
值得注意的是,在过程微积分意义上,"过程"一词的并发理论还有其他理解.这个定义与上面的定义是正交的,但我只是认为值得一提,所以如果你看到某个地方使用过程,就不会产生混淆.
另外,请注意并行和并发之间的区别.你可能在你的问题中使用前者,我认为你的意思是后者.
Ben*_*ker 33
我主要赞同Gian的答案,但我对一些并发原语有不同的解释.请注意,这些术语经常被不同作者使用不一致.这些是我最喜欢的定义(希望与现代共识相差不远).
一个小小的烦恼,我无法阻止自己播出:我不喜欢使用"真正的并发"这个短语用于"处理器并行".这很常见,但我认为这会导致很多混乱.
对于大多数应用程序,我认为基于任务的框架最适合并行化.大多数流行的(英特尔的TBB,Apple的GCD,微软的TPL和PPL)都使用线程作为工作者.我希望有一些很好的替代品使用过程,但我不知道任何.
如果您对并发感兴趣(而不是处理器并行性),事件处理程序是最安全的方法.合作线程是一个有趣的选择,但有点疯狂的西部.如果您关心软件的可靠性和健壮性,请不要使用线程进行并发.
| 归档时间: |
|
| 查看次数: |
7628 次 |
| 最近记录: |