linux 线程创建 管理,Linux 线程

Linux支持内核线程,用户进程以及LWP,Linux2.6之后支持线程组概念。

内核线程是内核创建的线程,处理内核事件的,例如kthreadd,ksoftirqd,migration这些都是内核线程。只运行在内核态。

用户进程是用户通过fork创建的程序,有属于自己的资源。

LWP是通过clone创建的进程,由于LWP和父进程会共享部分资源,比如地址空间,文件系统,文件句柄,信号处理函数等,所以把LWP称为轻量级进程。

线程组其实是在task_struct中增加了tgid(thread group id)字段,一般认为Linux通过这种方式支持了线程,其中进程的tgid等于自己的pid,线程的tgid等于进程的pid。

Linux线程库主要有LinuxThreads和NPTL(Native POSIX Thread Library),LinuxThreads逐渐被NPTL取代。

LinuxThreads和NPTL都是1:1的调度模型,用户线程其实就是通过clone创建的LWP。

LinuxThreads是通过管理线程对线程进行管理的,因而在SMP系统上伸缩性较差,并且很多方面不遵循POSIX 标准。

NPTL是Linux 线程库的一个新实现,由于Linux支持了线程组,所以它不需要管理线程,实现也更符合 POSIX 的需求。

参考:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值