进程线程的区别
进程是分配资源的最小单位,线程的资源调度的最小单位
一个进程最少包括一个线程(主线程)
共属于同一进程的线程共享进程的资源
线程的创建要比进程的创建节省时间。每个进程都独享属于其的所有资源,虽然进程遵循写时拷贝,但是为其分配资源也需要大量的时间
多线程的切换比多进程的切换时间更短,因为进程间的切换需要内核的介入,需要一个从用户态到内核态的切换,而同属于一个进程的多线程间的切换就不需要,不属于同一进程的的线程之间的切换等同于进程的切换。
网上还说进程之间的切换比线程的慢的主要原因是因为每个进程都拥有独立的0-3G(32位机为例)的用户空间,进程的切换回涉及虚拟地址的转换,由于页表的转变会使TLB(快表)失效,一段时间内TLB不会命中,操作系统就必须要访问内存,所以进程间切换的时间比较长
一个线程的崩溃会导致整个进程的崩溃,一个进程的崩溃不会影响到其他的进程。