多线程与多进程(概念详细讲解)

多线程与多进程(概念详细讲解)本文主要讲解了线程与进程的概念,对比了它们的优缺点,这也是面试常出现的问题,同时也补充了一些相关术语,结合图片进行了一些讲解文章仅仅谈了对于线程与进程表层的理解,由于笔者没有较多的开发经验,研究并不深刻,总结可能有所欠缺,趋于肤浅,望指正。…


前言

本文主要讲解了线程与进程的概念,对比了它们的优缺点,这也是面试常出现的问题,同时也补充了一些相关术语,结合图片进行了一些讲解


一、线程与进程

1.进程
一个正在执行的程序,是操作系统资源分配的最小单位,进程中的事情需要按照一定顺序执行。进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护相关的存储空间(代码段,堆栈段,数据段),这种操作极其耗费资源。

2.线程
线程有时又称为轻量级进程,是程序执行的最小单位,系统独立调度和分派CPU的基本单元,它是进程中的一个实体。一个进程中可以有多个线程,这些线程共享进程的所有资源,线程本身只包含一点必不可少的资源。因此CPU切换一个线程的花费远比进程要小得多,同时创建,销毁一个线程的开销也要小于进程

多线程与多进程(概念详细讲解)
3.CPU的时间片轮,在一个大的时间段内,在所有线程相同的情况下,CPU随机进入一个线程运行一段时间后,进入下一个线程,就像左轮手枪的转轮一样。

二、对比

在这里插入图片描述

1.进程

(一)进程的弊端
一是由于进程是资源的拥有者,创建,撤销与切换存在较大的时空开销,因此需要引入轻型进程,而多个进程的开销过大。
在子进程和父进程已经被创建好后,它们之间的通信是很困难的。

(二)进程的优点
目前存在一种解决方案是在子进程需要来自父进程的各种数据的时候,再发生拷贝,可以减小创建子进程的花销
多进程更加健壮,一个进程发生问题不会对其它进程造成影响

2.线程

(一)线程的优点
线程之间的通信更加方便,同一进程下的线程共享全局变量,静态变量等数据。
创建一个线程,线程之间的来回切换耗费系统资源少
模块化编程,能够清晰表达出现中独立事件的关系,结构清晰
多线程不需要多处理器

(二)线程的弊端
多线程编程处理好同步和互斥是难点
一个线程发生问题就会让整个进程出现BUG

三、术语补充

1.并发
在同一时刻,只能有一条指令执行,但多个事件的指令被快速轮转执行,使得宏观上具有多个事件同时执行的效果
2.并行
在同一时刻,有多条指令在多个处理器上同时执行
3.同步
彼此有依赖关系的事件不应该同时发生,同步的目的是阻止它们同时发生
4.异步
发生的两个事情具有事件上的独立性,不是同时发生


总结

文章仅仅谈了对于线程与进程表层的理解,由于笔者没有较多的开发经验,研究并不深刻,总结可能有所欠缺,趋于肤浅,望指正

今天的文章多线程与多进程(概念详细讲解)分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/24079.html

(0)
编程小号编程小号

相关推荐

发表回复

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