进程和线程的对比
线程 | 进程 | 详细描述 | |
---|---|---|---|
能否并发 | 能 | 能 | 都可以做到交替执行 |
切换内容 | 指令流 | 指令流+资源 | 进程切换时资源也需要一起切换 |
切换代价 | 小 | 大 | 线程切换不需要资源一起切换 |
资源消耗 | 小 | 大 | 创建线程时共用进程资源 |
相互影响 | 操作同一内存 | 完全分离 | 同一进程的不同线程使用先相同地址空间 |
安全性 | 小 | 大 | |
隶属关系 | 同一进程 | 操作系统 | 先创建进程才能创建线程 |
进程,用户级线程,内核级线程内在关系
1)进程,用户线程,内核线程都是执行一个指令序列,没有本质区别
2)进程要执行一个指令序列,除了分配栈,创建数据结构记录执行位置,还要分配内存等资源。因为涉及到资源,所以进程的创建必须在操作系统内核中。
3)线程即将资源和执行序列分离处后的概念。因此进程的那个执行序列实际上就是一个内核级线程
4)内核级线程是操作系统在一套进程资源下创建的,可以并发执行多个执行序列,操作系统位每个这样的执行序列创建了相应的数据结构来实现对这些内核线程的控制。