前言
从本篇文章开始,将开始Linux多线程的知识,是重点中的重点,概念可能不容易理解,比较难消化,但只要多复习,必定会拿下多线程。
以下是本篇文章正文内容,下面案例可供参考
一、线程的概念
概念定义:在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列”。
在我个人理解:多线程,就是进程当中的多个执行流。比如一个程序的代码当中需要计算1加到100的值,我们可以把这一整个进程分成许多步骤,每个步骤执行各自的代码,干不同的工作来完成,每个步骤就可以看作是一个线程。如可以把1加到100分成10个线程来做,第一个线程计算1加到10的结果,第二个计算11加到20的结果,以此类推。
在之前学习的进程中,PCB中有个变量叫pid,它是用来表示进程号的,但是,在多线程中,我们所说的pid指的是线程号(也成为轻量级进程),但在内核当中是没有线程这个概念的,线程是c标准库当中的概念。PCB中还有一个tgid,它指的是线程组id,对应的就是进程id。
可以通过下图来理解线程的概念: