首先进程是资源分配的基本单位,就每个进程有自己的地址空间、堆、栈、代码区、数据区等,然后一个进程中的线程是可以共享进程中的这些资源的。而线程是CPU调度的基本单位,CPU是在不同线程之间来回切换的,线程的切换开销比较小,因为线程很大程度上是共享同一份内存的,它们只独享必不可少的资源,像寄存器、程序计数器和栈,更深入一点的话,线程他们具有相同的虚拟内存共享,这意味着这些线程都具有同一份页表,在切换时不需要切换页表,但对于进程来说的话,就需要切换页表。嗯。。然后就是线程之间是没有隔离的,一个线程是可以去访问其他线程的,这也导致了如果一个线程崩溃了,会对该进程中其他线程产生影响,进而导致整个进程崩溃,而进程的话就相对独立。嗯。。大概就这些。
