线程进程还不会?精简文章一篇懂

进程与线程

进程
概念

进程是具有一定独特功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个单位。

组成

进程是一个实体。每一个进程都有自己的地址空间,包括文本区域、数据区域和堆栈。

文本区域存储处理器执行的代码;

数据区域存储变量和进程执行期间使用的动态分配的内存;

堆栈区域存储这活动过程调用的指令和本地变量。

结构

进程由程序、数据和进程控制块三部分组成。

通信方法
方式说明
信号比较复杂,用于通知接收进程某个已经完成的事件。
信号量进程之间以及同一进程不同线程之间的同步与互斥。
套接字用于网络中不同机器之间的进程通信。
消息队列是消息的链接表,消息队列是面向记录的,其中的消息具有特定的格式以及特定的优先级,独立于发送与接收的进程。
共享内存使多个进程可以同时访问同一块内存空间,不同进程可以及时看到对方进程中对共享内存数据的更新。但其需要依靠某些同步操作,如互斥锁和信号量等。
管道及命名管道主要指无名管道,可用于具有亲缘关系的父子进程间的通信,有名管道除了具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。
线程
概念

线程是进程的一个实体,是CPU调度和分派的基本单位,他是比进程更小的能独立运行的基本单位。线程自己基本不拥有系统资源,只有一点在运行中不可缺少的资源,但是他可与同属一个进程的其他的线程共享经常所拥有的全部资源。

线程之间的关系

一个线程可以创建和撤销另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。

线程也有就绪、阻塞和运行三种基本状态。

进程与线程的区别

1)进程至少有一个线程,它们共享进程的地址空间,而进程拥有自己的地址空间;

2)线程是程序执行的最小单位,进程是资源拥有和分配的最小单位;

3)进程之间相互独立,同一个进程内线程共享进程的资源;

4)线程是处理调度的基本单位;

5)线程上下文切换比进程上下文切换快。

加入小猿QQ群:947117563,一起闲聊工作那些事!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
进程线程都是计算机中的并发执行模型,它们的最大区别在于进程操作系统资源分配的基本单位,而线程是程序执行的基本单位。下面是它们的优缺点和使用场景: 进程的优点: 1. 进程之间互相隔离,相互之间不会影响; 2. 进程之间共享数据简单,可以使用IPC机制进行通信; 3. 进程可以利用多核CPU进行并发执行; 4. 进程崩溃不会影响其它进程进程的缺点: 1. 进程创建、切换和销毁的开销比较大; 2. 进程之间的通信比较耗时; 3. 操作系统需要为每个进程分配独立的内存空间,占用较多的内存资源。 线程的优点: 1. 线程创建、切换和销毁的开销比进程小很多; 2. 线程之间的通信比进程之间的通信更加快速和简便; 3. 多线程可以充分利用CPU的多核特性,提高程序的并发执行能力; 4. 线程之间共享内存,数据共享简单。 线程的缺点: 1. 线程之间没有隔离,一个线程崩溃可能会影响整个程序; 2. 线程之间的共享数据容易引起数据竞争; 3. 线程的数量过多会影响程序的性能。 使用场景: 一般来说,进程适用于需要隔离的场景,比如操作系统进程管理、Web服务器的多进程模型等;线程适用于需要并发、数据共享的场景,比如图形界面程序、网络服务器的多线程模型等。在实际应用中,根据具体的需求和应用场景来选择合适的并发执行模型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值