在Linux中,我们可以把进程看成资源的分配单位。把线程看成是执行流的分配单位(一个线程管理一个执行流)。
    执行流:一段按序执行的代码集合。
    在Linux中,为了关了程序的执行,我们需要为程序创建一个进程,而创建进程最重要的就是分配物理内存资源,同时为其分配页目录、页表来完成虚拟地址到物理地址的映射。接着将程序的各个segment从内核空间(经过文件读入到内核空间)移动到为程序分配的内存地址空间中。而每个进程初始时都有一个执行流,这个执行流就是main函数开启的执行流(c++在main函数之前还会执行其他的初始化函数,然后再调用main函数)。所以我们可以把初始时为进程创建的PCB看成为程序的main函数执行流创建的线程。也就是这个进程看成单线程进程。
    所以我们可以这样理解:创建进程就是申请一段内存资源,创建线程就是为程序的一个函数所对应的执行流创建一个PCB。而创建进程时还要为程序的main函数创建一个线程。此时的进程也可以称为单线程进程,这第一个创建的线程也称为进程的主线程。主线程可以接着创建线程,这之后进程就变为多线程进程。

    以后问进程线程的区别问题的回答:
    在Linux中,进程是资源分配的独立单位,线程是CPU调度的分配单位,也就是执行流的管理单位。我们可以把刚刚创建的进程看作一个单线程进程,也就是拥有一个执行流的进程。
    创建进程时OS需要为这个进程分配内存空间资源。而进程初始时有一个以main函数开始的执行流,所以为了管理这个执行流,我们需要这个执行流创建一个”线程”。也就是要分配一个PCB。