Linux 开发系列笔记(3.1) - 线程概述
建站提交历史文章,原文写作时间 2023 年 2 月前后。
线程概述
-
线程(Thread)本质上是轻量级进程(LWP,Light Weight Process),但与进程拥有不同的行为。在Linux中线程被当作进程进行处理,在原生Linux中并不支持线程。现在Linux操作系统上的线程,大多是Red Hat基于POSIX开发的NPTL(Native POSIX Tread Library)。 -
线程是轻量级进程。在进程创建时虽然运用写时拷贝技术大幅度减少了拷贝量,但仍然需要拷贝PCB中诸如虚拟内存映射表以及文件描述符表中的数据;线程共享PCB,这意味着线程创建时拷贝的数据量很小,创建线程的开销通常是进程创建的1/10或者更少。 -
线程依然具有不共享资源:线程号与线程的实时调度策略与优先级- 信号掩码
线程特有数据errorno变量(线程操作中,errorno通过函数返回,而非设置全局变量)栈空间与.text空间(线程运行在函数体中,因此外部无法访问函数体数据与代码)
-
与进程不同地,进程拥有父子关系构成的复杂
进程树结构,而线程仅拥有主线程与子线程的二级父子关系。
评论
