详解并发和并行意义

详解并发和并行意义很多人不是特别明白并发编程和并行编程的区别所在 有很多人很容易搞混淆 觉得二者近似相等 本文将用几个浅显易懂的例子 来说明一下什么是并发和并行 1 任务与多任务 nbsp nbsp nbsp nbsp 关于什么是进程 什么是线程 这里不打算多说 关于每一种开发语言的多线程处理技术语法上有所区别 原理很多类似 可以查阅相关的参考书 什么是任务呢 其实很简单 在我们生活中 比如我今天要学一首歌 要在操场上散步 1000 米

      很多人不是特别明白并发编程和并行编程的区别所在,有很多人很容易搞混淆,觉得二者近似相等,本文将用几个浅显易懂的例子,来说明一下什么是并发和并行。

1、任务与多任务

       关于什么是进程,什么是线程,这里不打算多说,关于每一种开发语言的多线程处理技术语法上有所区别,原理很多类似,可以查阅相关的参考书。什么是任务呢?其实很简单,在我们生活中,比如我今天要学一首歌,要在操场上散步1000米,然后还要向老师电话汇报研究成果,这是今天的三个任务。在编程语言中,实现某一个任务的一般单元就是“函数”。

2、顺序执行

      上面三个任务,如果在一般的单线程执行的程序里面,分别定义三个函数,然后依次顺序执行,即执行完第一个在执行第二个,然后执行第三个,即我先把一首歌学会,然后在操场上散步1000米,然后再给老师汇报,这样做效率低下。我们可以有一个更加高效的办事方法,我在散步的时候,顺便打电话给老说汇报一下今天的成果,然后边散步边听歌,便跟着学,这样效果就高很多,这里的是“并行执行”。

3、并发和并行的一些理解——concurrency  and  parallellism

      并发和并行都是完成多任务更加有效率的方式,但还是有一些区别的,并发(concurrency),并行(parallellism),可见他们的确是有区别的。下面通过一些具体的例子进行说明。

      例子一:

      例子二:

理解:

并发和并行的意义:

4、CPU的时间观

        为什么要进行“并发、并行、多任务、多线程、异步”等等相关的一些操作,就是为了充分利用CPU的巨大潜能,因为很多任务是需要时间的,比如文件的读写、网络数据流的下载等等,如果让CPU处于一个闲置状态,不充分利用它,程序的效率就很低。

       站在CPU的角度而言,我就是全心全意搞计算的,你却让我闲着没事干,在我的心里,等待的时间就异常漫长。下面是CPU所谓的时间观:

       详解并发和并行意义

      详解并发和并行意义

由此可见,站在人类的角度而言,重启一次也就等了5分钟,还可以接受,可是对于CPU而言,它却感觉等了25000年,这是多么漫长的等待,25000年不做事情,太煎熬了。

5、下面是我推荐的两本关于多任务,并发并行编程的书籍,一本是基于,NET语言的,一本是基于Python语言的。

   详解并发和并行意义 详解并发和并行意义详解并发和并行意义

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/207511.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午1:42
下一篇 2026年3月19日 下午1:43


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号