进程与线程
进程
概念
进程是具有一定独特功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个单位。
组成
进程是一个实体。每一个进程都有自己的地址空间,包括文本区域、数据区域和堆栈。
文本区域存储处理器执行的代码;
数据区域存储变量和进程执行期间使用的动态分配的内存;
堆栈区域存储这活动过程调用的指令和本地变量。
结构
进程由程序、数据和进程控制块三部分组成。
通信方法
方式 | 说明 |
---|---|
信号 | 比较复杂,用于通知接收进程某个已经完成的事件。 |
信号量 | 进程之间以及同一进程不同线程之间的同步与互斥。 |
套接字 | 用于网络中不同机器之间的进程通信。 |
消息队列 | 是消息的链接表,消息队列是面向记录的,其中的消息具有特定的格式以及特定的优先级,独立于发送与接收的进程。 |
共享内存 | 使多个进程可以同时访问同一块内存空间,不同进程可以及时看到对方进程中对共享内存数据的更新。但其需要依靠某些同步操作,如互斥锁和信号量等。 |
管道及命名管道 | 主要指无名管道,可用于具有亲缘关系的父子进程间的通信,有名管道除了具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。 |
线程
概念
线程是进程的一个实体,是CPU调度和分派的基本单位,他是比进程更小的能独立运行的基本单位。线程自己基本不拥有系统资源,只有一点在运行中不可缺少的资源,但是他可与同属一个进程的其他的线程共享经常所拥有的全部资源。
线程之间的关系
一个线程可以创建和撤销另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。
线程也有就绪、阻塞和运行三种基本状态。
进程与线程的区别
1)进程至少有一个线程,它们共享进程的地址空间,而进程拥有自己的地址空间;
2)线程是程序执行的最小单位,进程是资源拥有和分配的最小单位;
3)进程之间相互独立,同一个进程内线程共享进程的资源;
4)线程是处理调度的基本单位;
5)线程上下文切换比进程上下文切换快。
加入小猿QQ群:947117563,一起闲聊工作那些事!!