进程包含线程
进程有自己独立的内存空间和文件描述符表,同一个进程中的多个线程之间,共享同一份地址空间和文件描述符表。
进程是操作系统资源分配的基本单位,线程是操作系统执行的基本单位。
进程之间具有独立性,一个进程挂了,不会影响到别的进程;同一个进程里的多个线程之间,一个线程挂了,可能会把整个进程带走,影响到其他线程的。
我们可以把进程比作一个工厂,线程比作工厂里的流水线,工厂里有流水线,把操作系统的执行比作生产。所以进程包含线程;每个工厂之间的资源是独立的,而工厂内的流水线可以实现一些资源的共享(比如两个流水想共用一批工人),类似的,进程有自己独立的资源,线程之间可以共享里面的资源(如上文说的独立的内存空间和文件描述符表),所以进程是操作系统资源分配的基本单位。工厂本身不会进行生成,但它可以通过里面的流水线进行生产,所以线程是操作系统执行的基本单位。工厂与工厂之间是相对独立的,比如摩托车制造厂停产不会影响烟草制造工厂。而工厂内部一个流水线的停产可能会影响其他流水线,甚至可能影响整个工厂的生产,所以进程之间具有独立性,一个进程挂了,不会影响到别的进程;同一个进程里的多个线程之间,一个线程挂了,可能会把整个进程带走,影响到其他线程的。