什么是并行处理?什么是进程线程?🐐

1,461 阅读3分钟

作者:王二狗
博客:掘金思否知乎简书CSDN
点赞再看,养成习惯,你们的支持是我持续分享的最大动力😘

并行处理

在理解进程和线程之前,首先需要了解的就是并行处理,理解了并行处理之后,再理解进程和线程就会容易很多。

所谓并行处理就是说计算机在同一时刻处理多个任务,比如我们要计算出下面三个表达式的值,并显示出结果:

A = 1 + 1
B = 2 + 2
C = 3 + 3

按照正常的执行流程,下面的流程会这样执行:

* 任务 1 是计算 A=1+1;
* 任务 2 是计算 B=2+2;
* 任务 3 是计算 C=3+3;
* 任务 4 是显示最后计算的结果。

上面的执行流程就是单线程处理。

如果使用多线程处理,我们只需要分2步即可完成上面的任务,第1步:使用三个线程同时执行前三个任务;第2步,再执行第四个显示任务。

通过对比分析,你会发现用单线程执行需要四步,而使用多线程只需要两步。

因此,使用多线程并行处理能大大提升性能

什么是线程?什么是进程?

多线程可以并行处理任务,但是线程是不能单独存在的,他是由进程来管理和启动的。

那什么是进程呢?

一个进程就是一个程序的运行实例。

详细解释就是,启动一个程序的时候,操作系统会为该程序创建一块内存,用来存放代码、运行中的数据和一个执行任务的主线程,我们把这样的一个运行环境叫进程。

线程是依附于进程的,而进程中使用多线程并行处理能提升运算效率。

线程VS进程

进程中的任意一线程执行出错,都会导致整个进程的崩溃

线程之间共享进程中的数据

线程之间可以对进程的公共数据进行读写操作。

当一个进程关闭之后,操作系统会回收进程所占用的内存

当一个进程退出时,操作系统会回收该进程所申请的所有资源;即使其中任意线程因为操作不当导致内存泄漏,当进程退出时,这些内存也会被正确回收。

进程之间的内容相互隔离

进程隔离是为保护操作系统中进程互不干扰的技术,每一个进程只能访问自己占有的数据,也就避免出现进程 A 写入数据到进程 B 的情况。

正是因为进程之间的数据是严格隔离的,所以一个进程如果崩溃了,或者挂起了,是不会影响到其他进程的。

如果进程之间需要进行数据的通信,这时候,就需要使用用于进程间通信(IPC)的机制了。

告诫自己,即使再累也不要忘记学习,成功没有捷径可走,只有一步接着一步走下去。 共勉!

文章中如有不对的地方,欢迎小伙伴们多多指正。

谢谢大家~ 💘