【多线程高并发编程】一进程和线程(并发和并行)

程序猿学社的GitHub,欢迎Star:
https://github.com/ITfqyd/cxyxs
觉得有用,可以点赞,关注,评论,留言四连发。

前言

为了更好的学习多线程,在这里我们了解一下,一些概念性的描述,只有理解这些概念后,才能更好的学习多线程。加油!!!

1.并发和并行

并发

并发指在同一时刻只能有一条指令执行。也就是单个cpu。一般是只多个线程进行交互,达到理论上的同时执行效果,实际上是交替执行,。但是因为,但是因为cpu处理速度过快,我们几乎很难察觉。
例如:一般写着博客,到了吃饭的点,再去吃饭,一直重复,中间有间隙,同一时刻,只能做一件事。举例子的时候,我们只说把间隙放大了而已。

并行

并发指同一时刻,同时运行多个任务。可以我们已经鸟枪换大炮了,通过多个cpu,还并行处理多个任务。
例如:我要开发一个博客管理系统,一个人开发要一个月。boss觉得太慢了,想了想,这效率太慢了,正好,我有钱,一口气,招了3个人。这个项目。10多天就完成勒。通过多个人同时开发,一个做用户,一个做论坛,一个做文章管理,同时进行。大大提高了开发效率。

2. 什么是进程和线程

进程

进程是cpu资源分配的最小单位,进程之间不能共享资源。进程有自己独立的地址空间。一个进程可能包含多个线程。

为了方便理解,我们通过一些案例更好的理解一下。
进程就是我们上网过程中,启动某个应用,他就是进程。
例如:我们开发的项目,发布到服务器下,就会启动一个预知对应的进程。
下图是社长启动的所有进程。可以通过ctrl+alt+delet组合键查看。
在这里插入图片描述

线程

线程是cpu调度的最小单位,线程还有自己的栈和栈指针,程序计数器等寄存器。线程必须依赖于进程。可以理解为进程是父亲。线程是儿子,一个父亲可能有多个儿子,每个儿子,肯定有一个父亲,当然,如果是孙悟空,就另说。

点击某个网站,实际上就会调用一个线程。假设用的是tomcat作为服务端,我们访问网站,向后台发送一个请求,会调用一个http-bio-端口号的线程。
启动一个微信,我们发现我们能看到的有4个线程。这里的微信也就是我们所说的进程。也就是说启动一个微信应用进程。会启动4个线程。
在这里插入图片描述

后记

程序猿学社的GitHub,欢迎Star:
https://github.com/ITfqyd/cxyxs
觉得有用,可以点赞,关注,评论,留言四连发。

发布了274 篇原创文章 · 获赞 477 · 访问量 20万+

猜你喜欢

转载自blog.csdn.net/qq_16855077/article/details/104327880