进程和线程的区别
- 进程是执行着的应用程序,而线程是进程内部的一个执行序列。一个进程可以有多个线程。线程又叫做轻量级进程。
线程 | 进程 | |
---|---|---|
地址空间和其它资源 | 线程没有地址空间,线程包含在进程的地址空间中 | 进程间相互独立,同一进程的各线程间共享 |
通信 | 线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性 | 进程间通信IPC |
.调度和切换 | 线程上下文切换快 | 进程上下文切换慢 |
线程也要对进程施加控制,进程中任何线程都可以通过销毁主线程来销毁进程,销毁主线程将导致该进程的销毁,对主线程的修改可能影响所有的线程。 | 进程内的任何线程都被看做是同位体,且处于相同的级别。不管是哪个进程创建了哪一个线程,进程内的任何线程都可以销毁、挂起、恢复和更改其它线程的优先权。 |
- 相同点:
进程和线程都有ID/寄存器组、状态和优先权、信息块,创建后都可更改自己的属性,都可与父进程共享资源、都不能直接访问其他无关进程或线程的资源。