线程
线程是进程中的一条执行路径,当系统支持多线程处理时,线程时任务调度的单位,但不是系统资源的分配单位。线程完全继承父进程占有的资源,只是当它活动时有自己的运行现场。
与进程区别
序号 | 进程 | 线程 |
---|---|---|
1 | 进程是重量级,资源密集型 | 轻量级,消耗更小的资源(与进程比) |
2 | 进程切换需要与操作系统交互 | 线程切换不需要与操作系统交互 |
3 | 多进程,相同代码,但每个进程拥有自己的资源 | 所有的线程可共用资源 |
4 | 当一个进程阻塞,其他进程等待 | 当一个线程阻塞,后续线程可执行 |
5 | 多进程中不用线程会用更多的资源 | 多线程进程用更傻少的资源 |
6 | 多进程中,每个进程都是相互独立的 | 一个线程可以改变读,写,改变其它线程的数据 |
特点
- 线程创建与管理的开销小得多,因为多线程可以共享父进程的所有程序和全局数据,这意味着创建一个新线程只涉及最小量的主存分配(线程表),也意味着一个进程创建的多个线程可以共享地址区域和数据。
- 在进程内创建多线程,可以提高系统的并行处理能力。
- 线程降低了上下文切换的时间
- 多线程使得在进程中并发执行任务
- 有效的通信
- 线程的创建和切换上下文更加经济
- 线程使得