Linux 进程与线程
进程 (Process)
- 定义:进程是操作系统进行资源分配和调度的基本单位。每个进程都有独立的地址空间,包括代码段、数据段、堆栈等。
- 资源:每个进程拥有独立的内存空间、文件描述符、环境变量等。
- 创建:通常通过
fork
系统调用创建新进程,子进程继承父进程的大部分属性,但有独立的地址空间。 - 通信:进程间通信(IPC)可以通过管道、消息队列、共享内存、信号等方式实现。
- 调度:操作系统内核负责进程的调度,确保每个进程公平地获得 CPU 时间。
线程 (Thread)
- 定义:线程是进程内的执行单元,同一进程内的多个线程共享进程的资源,包括内存空间、文件描述符等。
- 资源:线程共享进程的资源,但每个线程有自己的程序计数器、寄存器集合和栈。
- 创建:通常通过
pthread_create
函数创建新线程。 - 通信:线程间通信相对简单,可以直接访问共享内存。
- 调度:操作系统内核负责线程的调度,确保同一进程内的多个线程公平地获得 CPU 时间。