进程:
进程是操作系统分配资源的最小单位。
进程之间是相互独立的,一般不可互相访问(除非利用分布式计算方式)。
进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段。
进程间切换代价很昂贵。
线程:
线程是执行的最小单位。
一个进程可以包含多个线程,入口处的线程被称为主线程。线程共享进程中的全部资源。
线程间切换开销比较小,但是过多的使用多线程反而会使性能下降(CPU需要花时间在线程的切换上)。
线程主要由CPU寄存器、调用栈和线程本地寄存器组成(TLS)。
多线程是“假象”,单位时间内,CPU只会执行一个线程。