linux线程剖析(Part1)—1个“假“的tcb

linux的“假”线程


先说一句废话:线程是在进程内部运行的一个执行分支

这是现在大多数计算机书籍对线程概念的描述。然而,对大多数人来说(比如我),仍然不(yi)知(lian)所(meng)云(bi)。

为了深刻理解这句话背后的含义,我们先来看一张图:

1

我们知道,vfork函数是用来创建子进程的。且该函数创建出的子进程与父进程共用一个地址空间。

所以,可以将父进程中的代码和函数分解,并分别交给这些子进程并行执行。这种方式相较于普通进程执行的方案更为高效。

事实上,我们可以将这些子进程看作线程,而把上图中的father和child统称为一个进程。这样,我们就可以知道线程在进程和OS中扮演的角色。

那为什么说linux的线程是“假”的呢?

这是因为在linux中,线程和进程共用了一种数据结构(task_struct)。也就是说,linux并没有为线程设计另外的数据结构。linux中的线程是由进程模拟的。所以,linux中没有真正意义上的线程,相当于“假”的线程。

注:windows操作系统中,线程就是真正意义上的线

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值