同时性和并行性的区别是什么?
例子受到称赞。
#1楼
同时性:可能共享资源的多个执行流
例如,两个线程竞争一个I/O端口。
平行主义:把问题分成多个相似的块。
例如,通过每一半文件运行两个进程来分析大文件。
#2楼
并发意味着可以在两个或多个任务重叠的时间段开始、执行和完成。 并不意味着一切都同时执行。 例如,单核计算机上的多任务处理。
并行意味着任务实际上在多核处理器上同时执行。
并发:至少有两个线程正在进行中存在的条件。 以并行性的更常见形式,可以包括时间片作为虚拟并行性的一种形式。
并行性:至少两个线程同时运行时的条件。
#3楼
他们解决了不同的问题。 同时解决了CPU资源不足和任务多的问题。 因此,您可以从代码中创建线程或独立的执行路径,以利用缺少的资源共享时间。 直到最近,由于CPU的可用性,并发一直是讨论的主要内容。
通过找到足够数量的任务和合适的任务(可以正确划分的任务)并将其分配给大量的CPU资源,并行解决了以下问题: 并行性当然一直存在,但多核处理器非常便宜,所以已经走在前列。
#4楼
我喜欢Rob Pike的演讲。 不是并行的。 (更好! (幻灯片) )演讲) ) )。
Rob通常谈论Go,通过直观的解释解决并发性和并行性问题! 这是一个简单的概括:
任务:烧掉很多过时的语言手册吧! 一次一个!
同时:任务有很多同时分解! 例如:
并行性:如果至少有两个鼹鼠同时工作或不同时工作,以前的配置将并行发生。
#5楼
补充别人的话:
就像让玩杂耍的人弄很多球一样。 不管看起来如何,魔术师一次只能抓住/扔出一个球。 并行性是指多个杂耍者同时进行杂耍。