Linux中的进程和线程

先说一些比较官方的概念,下面再进行详细解释:

进程:就是处于执行期的程序。但是进程不仅仅包含可执行程序的代码,还包括其能调动的其他资源:挂起的信号灯,内核内部数据,处理器状态,一个或多个具有内存映射的内存地址空间及一个或多个执行线程,还包括用来存放全局变量的数据段等。也就是说进程就是正在执行的程序代码的实时结果。

执行线程:在进程中活动的对象。

每一个线程都有一个独立的计数器、进程栈和一组进程寄存器。内核调度的对象是线程。在Linux中对线程和进程并不进行特别区分,对其而言,线程只是一种特殊的进程。

--------------------------------------------------------------------------------------------------------------------------

读完上面的官方解释,大概能初步理解进程和线程是一种包含关系,进程包含线程。我们再解释得形象一点,可以用工厂中的车间来比喻进程,那么线程就是车间中的工人或者是车间中不同的产品线。其中进程和线程是一对一或者一对多的关系,一个进程至少包含一个线程。

扩展3个概念:多进程多线程协调机制

1.多进程

以多进程方式,允许多个任务同时进行,好比工厂中多个车间同时工作。

2.多线程

以多线程形式,允许单个任务分成多个部分同时运行,好比同一车间中不同的产品线或不同的工种完成不同的产品生产.

3.协调机制

提供协调机制,防止进程和线程之间产生冲突,也让进程和线程之间共享资源。

你可能感兴趣的:(c语言,linux)