线程与进程的区别? (1)调度:在传统操作系统中,拥有资源和独立调度的基本单位都是进程。引入线程之后,线程是独立调度的基本单位,进程是拥有资源的基本单位。在同一进程中,线程的切换不会引起进程的切换,而不同进程中进行的线程切换,则会引起进程切换。 (2)拥有资源:进程是拥有资源的基本单位,线程不会拥有资源,但线程可以共享其隶属于进程的共享资源。 (3)并发性:进程可以并发执行,而且同一进程内的多个线程也可以并发执行,从而使操作系统具有良好的并发性,大大提高了系统吞吐量。 (4)系统开销:创建和撤销进程时,系统都要为之分配或回收资源,如内存空间、I/O设备。在进程切换时,涉及当前执行进程CPU环境的保存以及新调度的进程CPU环境的设置;而线程切换时,只需保存和设置少量的寄存器内容。同一进程内的多个线程共享进程的地址空间,因此这些线程之间的同步与通信比较容易实现。 (5)地址空间和其他资源:进程的地址空间之间互相独立,同一进程的各个线程间共享进程的资源,某进程内的线程对于其他进程不可见。 (6)通信方面:进程间通信需要借助操作系统,而线程间可以直接读/写进程数据段来进行通信。
|