参考文档
进程是怎样工作的?
进程(process),是程序(program)运行的实体。当代码被编译成二进制文件加载到内存中后,系统要为它分配各种资源才能使其运行,主要包括寄存器(register), 程序计数器 (program counter),堆栈(stack and heap)。
线程是怎样工作的?
线程(thread),是进程内部的执行单元,一个进程中最少会有一个线程,一个进程中的所有线程共享内存与资源,也正是因为这样,创建和切换线程的各种开销要比进程更少。在多线程中,各个线程分别有自己的stack,但是会一起共享heap。
进程与线程的区别
1.进程是系统分配资源的最小单位,一个程序至少会有一个进程。线程是CPU可调度的最小单位,一个线程至少要依赖一个进程生成。
2.每一个进程都有独立的地址和内存空间,彼此之间互不影响。依赖于同一个进程的不同线程共享资源,共享内存和堆栈。
3.多进程服务较为健壮,因为一个进程宕了不会影响其它进程。而多线程时,一个线程宕了,其它也会跟着宕。
4.多线程服务比多进程服务在空间和时间上的开销更小。