线程
现在的操作系统大多采用时间片轮转的方式工作,需要频繁的切换进程,由于每个进程都占有一份独立的内存空间,所以每次切换进程时都需要切换内存空间(程序上下文),这将造成很大的开销,此时操作系统的响应速度很慢,为了解决操作系统响应速度慢的问题,操作系统引入了更轻量的进程——线程,因为线程不占有内存空间,它包括在进程的内存空间中,共享进程的资源,所以切换线程的开销要小很多,又由于线程相比进程更加轻量,操作系统可以启动更多的线程来执行任务(程序段),这进一步提高了操作系统的并发能力。现在的操作系统一般都是采用以进程为单位进行资源分配,以线程为单位进行调度,这样的工作方式大大提高了操作系统的响应速度。
一、定义
线程(Thread):轻量级进程,是操作系统进行调度的最小单位。一个线程是一个任务(一个程序段)的一次执行过程。线程不占有内存空间,它包括在进程的内存空间中。在同一个进程内,多个线程共享进程的资源。一个进程至少有一个线程。
二、状态
操作系统创建线程时,线程处于创建态,CPU调度线程时,线程处于运行态,此时其它已创建的或者时间片到的线程就处于就绪态,当然还有些线程在进行磁盘、网络等IO时就处于阻塞态,操作系统销毁线程时,线程就处于终止态。另外,线程还具有静止就绪态和静止阻塞态,处于这两种状态,说明这个线程被操作系统挂起了,操作系统挂起线程,是为了观察和分析线程状态。
三、特点
- 一个线程是一个任务(一个程序段)的一次执行过程。
- 线程不占有内存空间,它包括在进程的内存空间中。
- 线程比进程开销小,更加轻量。
- 在同一进程内,多个线程可以并发执行。
- 在同一进程内,多个线程共享进程的资源。
总结
以上就是今天要讲的内容,本文简单介绍了操作系统为什么要引入线程、线程的定义、状态以及线程的特点。