ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

并发与并行的区别

2019-04-30 14:52:57  阅读:218  来源: 互联网

标签:processes tasks 区别 并行 same 并发 time


                    

并发:我们在写应用程序时经常会出现并发现象。一次处理很多事情,导致一些数据存储或计算出现问题.我个人理解并发就是(双拳难敌四手)

并行:我们是可以让他出现,为了优化软件效率。同时处理多核CPU中的任务的多个子任务。我在理解并行就想到(周伯通的左右互搏术)

曾看到一篇国外大佬的看法

Concurrency is when two tasks can start, run, and complete in overlapping time periods. Parallelism is when tasks literally run at the same time, eg. on a multi-core processor.
Concurrency is the composition of independently executing processes, while parallelism is the simultaneous execution of (possibly related) computations.
Concurrency is about dealing with lots of things at once. Parallelism is about doing lots of things at once.
An application can be concurrent – but not parallel, which means that it processes more than one task at the same time, but no two tasks are executing at same time instant.
An application can be parallel – but not concurrent, which means that it processes multiple sub-tasks of a task in multi-core CPU at same time.
An application can be neither parallel – nor concurrent, which means that it processes all tasks one at a time, sequentially.
An application can be both parallel – and concurrent, which means that it processes multiple tasks concurrently in multi-core CPU at same time.
Vipin Jain. 

这是摘自某大牛的分析:
          并行才是我们通常认为的那个同时做多件事情,而并发则是在线程这个模型下产生的概念。并发表示同时发生了多件事情,通过时间片切换,哪怕只有单一的核心,也可以实现“同时做多件事情”这个效果。根据底层是否有多处理器,并发与并行是可以等效的,这并不是两个互斥的概念。举个我们开发中会遇到的例子,我们说资源请求并发数达到了1万。这里的意思是有1万个请求同时过来了。但是这里很明显不可能真正的同时去处理这1万个请求的吧!如果这台机器的处理器有4个核心,不考虑超线程,那么我们认为同时会有4个线程在跑。也就是说,并发访问数是1万,而底层真实的并行处理的请求数是4。如果并发数小一些只有4的话,又或者你的机器牛逼有1万个核心,那并发在这里和并行一个效果。也就是说,并发可以是虚拟的同时执行,也可以是真的同时执行。而并行的意思是真的同时执行。结论是:并行是我们物理时空观下的同时执行,而并发则是操作系统用线程这个模型抽象之后站在线程的视角上看到的“同时”执行。

          再回过头去看看老师们的那句话,似乎也并没有什么不对的,只是不够严谨,容易被误导。这个问题,如果路过的同学没有意见的话,就到此为止了。没问题的话,以后,我就不再参与关于这个话题的争论了。(ーー゛)

 

 

标签:processes,tasks,区别,并行,same,并发,time
来源: https://blog.csdn.net/we5525008/article/details/89708780

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有