进程与线程异同
一个程序至少有一个进程,一个进程至少有一个线程.从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。
调度性:在传统的操作系统中,拥有资源的基本单位和独立调度、分派的基本单位为进程。而在引入线程的OS中,则把线程作为调度和分派的基本单位,而把进程作为资源拥有的基本单位
并发性:在引入线程OS中,不仅进程间可以并发执行,而且在一个进程的多个线程间也可以并发执行,因而它比传统的OS具有更好的并发性。
拥有资源:在这两种的OS中,拥有资源的基本单位都是进程。线程除了一点在运行中必不可少的资源(线程控制块、程序计数器,一组寄存器和堆栈等)外,本身不拥有系统资源。但它可访问其隶属进程的资源。
开销:由于创建或撤销进程时,系统都要为之分配和回收资源,如内存空间和I/O设备等;进程切换时所要保存和设置的现场信息也要明显地多于线程,因此,OS在创建、撤销和切换进程时所付出的开销将明显大于线程。另外,由于隶属于同一个进程的多个线程共享同