概念
- 进程,是计算机中的程序关于某个数据集合上的一次运行活动,是操作系统的基础,是系统进行资源分配和调度的基本单位,是程序的实体。
- 线程,是操作系统能够进行运算资源调配的最小单位,它包含在进程中,
区别
- 进程是线程的容器,是资源分配的最小单位,一个进程可以开启多个线程
- 线程是系统分配处理器资源的最小单位,进程之内独立执行的一个单元流程,
- 进程一般由线程、内存、文件/网络句柄组成;线程一般由栈、PC(程序计数器)、TLS(线程本地存储)组成
- 多进程就是多任务;多线程就是一个任务内多个顺序流在执行
- 系统开销,进程在创建和销毁的时候有系统分配和回收资源,开销明显大于线程的创建和回收
进程间的通信方式
- 共享内存
- 管道和有名管道
- 消息队列
- 信号 是在软件层次上对中断机制的一种模拟
- 信号量 主要作为进程之间及同一种进程的不同线程之间得同步和互斥手段
- 套接字 这是一种更为一般得进程间通信机制,它可用于网络中不同机器之间的进程间通信,应用非常广泛
进程和线程的关系
- 一个线程只属于一个进程,而一个进程可以有很多个线程
- 资源分配给进程,而同一个进程的多个线程贡献这些资源
- 处理器资源调取分配给线程,所以真正在处理器上执行的是线程
- 线程在执行过程中,需要协作同步,多个线程一起把任务做完。而进程是大家干相同类似的活。
多线程的优缺点
- 优点:合理调度处理器资源,提升CPU利用率,提高处理速度
- 缺点:过多的线程,导致CPU的频繁切换,会加重负担