线程
线程是进程当中的一条执行流程
线程特点
- 实体之间可以并发地执行
- 实体之间共享相同的地址空间
- 一个进程中可以同时存在多个线程
缺点: 一个线程崩溃,所属进程的所有线程崩溃
线程与进程的比较
- 进程是资源分配单位.线程是CPU调度单位:
- 进程拥有一个完整的资源平台,而线程只独享必不可少的资源,如寄存器和栈;
- 线程同样具有就绪、阻塞和执行三种基本状态,同样具有状态之间的转换关系;
- 线程能减少并发执行的时间和空间开销:
- 线程的创建时间和终止时间比进程短
- 同一进程内的线程切换时间比进程短;
- 由于同一进程的各线程间共享内存和文件资源.可直接进行不通过内核的通信;
进程三种实现方式
- 用户线程
- 内核线程
- 轻量级线程
用户线程和内核线程对应关系
- 一对多
- 多对一
- 多对多
用户线程
在用户空间实现的线程机制,它不依赖于操作系统的内核,由一组用户级的线程库函数来完成线程的管理,包括进程的创建、终止、同步和调度等。
用户线程缺点:
- 阻塞性的系统调用如何实现?如果一个线程发起系统调用而阻塞,则整个进程在等待;
- 当一个线程开始运行后,除非它主动地交出 CPU 的使用权,否则它所在的进程当中的其他线程将无法运行;
- 由于时间片分配给进程,故与其它进程比,在多线程执行时,每个线程得到的时间片较少,执行会较慢。
内核线程
是指在操作系统的内核当中实现的一种线程机制,由操作系统的内核来完成线程的创建、终止和管理。