线程----作为调度和分配的基本单位
我们如何可以使用多个程序并发地执行,同时又尽量减少系统的开销,也就是把不作为调度和分配的基本单位也同时作为拥有资源的单位,而且还要对拥有资源的基本单位,又不对之施以频繁的切换,这也正是线程产生的原因。
好了我们首先来看一下线程的概念,什么是线程?
线程: 线程是进程内部的一条执行序列(执行流), 每个进程至少有一条执行序列:main
的执行体。 进程可以通过线程库创建N条线程, 这些新创建的线程称之为函数线程,
main函数所代表的线程为主线程 。
线程和进程的比较
1、调度的基本单位
在传统的操作系统中,进程一直都作为独立调度和分派的基本单位,所以进程就是能够独立运行的基本单位,但是在引入了线程的操作系统中,已经把线程作为分配和调度的基本单位,所以线程也是能够独立运行的基本单位。
2、并发性
在引入线程的操作系统中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间也可以并发执行。
有的时候程序需要执行多个相似的任务,例如,一个网络服务器经常会接收到许多客户的请求,如果仍采取传统的单线程来执行该任务,则每次只能为一个客户服务。但如果在一个进程中可以设置多个线程,将其中的一个专用于监听客户的请求,则每当一个客户请求时,便立即创建一个线程来处理客户的请求。
3、拥有资源
进程可以拥有资源,并作为系统中拥有资源的一个基本单位。但是,线程本身并不拥有系统资源,而是仅有一点比不可少的、能保证独立运行的资源。
4、独立性
在同一进程中的不同线程之间的独立性要比不同进程之间的独立性低得多。
5、系统开销
在创建或撤销进程时,系统都要为之分配和回收进程块、分配或回收其他资源、如内存空间和I/O设备等。OS为此付出的开销,会明显大于线程所创建时付出的开销。
线程和进程的区别
1、进程是资源分配的最小单位,线程是cpu调度的最小单位
2、线程是轻量级的进程
3、管理方式不同,进程是PCB管理,线程是由线程结构管理
未完待续