首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

LinuxThreads和NPTL

本文为那些需要将自己的应用程序从 LinuxThreads 移植到 NPTL 上或者只是希望理解有何区别的开发人员介绍这两种 Linux 线程模型之间的区别。    ...尽管从 LinuxThreads 到 NPTL 看起来似乎是一个必然的过程,但是如果您正在为一个历史悠久的 Linux 发行版维护一些应用程序,并且计划很快就要进行升级,那么如何迁移到 NPTL 上就会变成整个移植过程中重要的一个部分...关于 NPTL     NPTL,或称为 Native POSIX Thread Library,是 Linux 线程的一个新实现,它克服了 LinuxThreads 的缺点,同时也符合 POSIX...如果您正运行的是一个启用了 NPTLLinux 发行版,但是应用程序却是基于 LinuxThreads 模型来设计的,那么所有这些设置通常都可以使用。...glibc 2.2.5 SUSE Linux Enterprise Server 8 2.4.21 LinuxThreads 0.9 glibc 2.2.5 United Linux 2.4.21 NPTL

74430

LinuxThread VS NPTL

《原文出自http://blog.csdn.net/guosha, 转载请注明出处》 Linux从内核2.0到内核2.4期间多线程编程使用的是LinuxThread,但使用这种方式写出的多线程程序在诸多特性上并不是跟...这显然跟Linux号称的跟POSIX标准兼容不相符,所以从内核2.6开始有了新的线程实现方式NPTL。...NPTL号称解决了LinuxThread中绝大多数跟POSIX标准不兼容的特性,并提供了更好的性能,可扩展性及可维护性等等。那么NPTL跟LinuxThread的实现到底有什么不同呢?...Linux内核只是在原来的进程管理结构新增了一个TGID的字段, 如下图。当一个线程的PID等于TGID时这个线程就是线程组长,其PID也就是这个线程组的进程号。...那么NPTL下线程又是如何创建线程的呢?

87830
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    传统功夫这叫化劲儿 --- 多线程系列(一)

    而对于RedHat而言,反正自家系统用户有的是,索性直接把接受了NGPT精华的NPTL一波儿干到了自家的RedHat Linux中去了。...再往后发展就顺理成章被集成到了Linux 2.6内核中去了,自此算是实现了真正的内核态线程支持。...总结一句话:Pthread是标准,而无论是LinuxThreads还是NGPT还是NPTL这都是具体的实现,总之就是标准与实现的故事。...这是最粗暴最爽的实现方式,早期Win32以及LinuxNPTL)都是这么干的。...注意:对于Linux而言,进程和线程都是通过task_struct来表达的,只不过线程是通过浅拷贝,多个线程时间共享内存等相关数据,线程对于Linux而言可以理解为一种特殊的进程。

    43840

    Linux 是否有 zombie thread?源码探究分析

    pthread 在 Linux 上一般是由 libc 实现的,最常见的 libc 是 glibc(另一个 Linux 上常用的 libc 的例子是 musl,更轻量,不展开)。...glibc 的 pthread 实现叫做 NPTL(替换掉之前的远古实现叫 LinuxThreads,也不展开),可以在 https://codebrowser.dev/glibc/glibc/nptl...https://codebrowser.dev/glibc/glibc/nptl/pthread_join.c.html https://codebrowser.dev/glibc/glibc/nptl...通过 __nptl_free_tcb(pd) 可以知道,所谓的 “TCB” 这个概念实际上就是 pthread 结构体本身(pthread_t 是指向其的指针),并且是存储在用户态的,由 glibc/nptl...注意到该结论只适用于 Linux,因为 Linux 实现线程的方式为内核轻改动,大多数线程相关的功能实现都在用户态中实现(glibc)。

    1.7K20

    主线程异常会导致 JVM 退出?

    (Native POSIX Thread Library) 模型,如下 NPTL线程模型 那么这个内核线程在内核中又是怎么表示的呢, 其实在 Linux 中不管是进程还是线程都是通过一个 task_struct...在 Linux 中进程分配资源后,线程通过共享资源的方式来被调度得以提升线程的执行效率 由此可见,在 Linux 中所有的进程/线程都是用的 task_struct,它们之间其实是平等的,那怎么表示这些线程属于同一个进程的概念呢...模型的缺点 NPTL 是一种非常高效的模型,研究表明 NPTL 能够成功地在 IA-32 平台上在两秒内生成 100,000 个线程,而 2.6 之前未采用 NPTL 的内核则需耗费 15 分钟左右,...看起来 NPTL 确实很好地满足了我们的需求,但针对内核线程来调度其实还是有以下问题 不管是进程还是线程,每次阻塞、切换都需要陷入系统调用(system call),系统调用开销其实挺大的,包括上下文切换...上,一个线程默认的栈大小是1M,创建几万个线程就吃不消了 协程 NPTL 模型其实已经足够优秀了,上述问题本质上其实还是因为线程还是太“重”所致,那能否再在线程上抽出一个更轻量级的执行单元(可被 CPU

    1.4K20

    Linux性能及调优指南(翻译)之Linux进程管理

    图1-4 进程和线程 在现在的Linux实现中,线程支持UNIX的可移植操作系统接口(POSIX)标准库。在Linux操作系统中有几种可用的线程实现。...Native POSIX Thread Library(NPTL)正在取代LinuxThreads。LinuxThreads在将来的Linux企业发行版中将不被支持。...Native POSIX Thread Libary(NPTLNPTL最初是由红帽公司开发的。NPTL与POSIX更加兼容。...通过Linux内核2.6的高级特性,例如,新的clone()系统调用、信号处理的实现等等,它具有比LinuxThreads更高的性能和伸缩性。 NPTL与LinuxThreads有一些不兼容。...一个依赖于LinuxThreads的应用可能不能在NPTL实现中工作。 Next Generation POSIX Thread(NGPT) NGPT是一个IBM开发的POSIX线程库。

    1.3K91

    Linux性能及调优指南:进程管理

    Linux进程管理 进程管理是操作系统的最重要的功能之一。有效率的进程管理能保证一个程序平稳而高效地运行。 Linux的进程管理与UNIX的进程管理相似。...Native POSIX Thread Library(NPTL)正在取代LinuxThreads。LinuxThreads在将来的Linux企业发行版中将不被支持。...Native POSIX Thread Libary(NPTLNPTL最初是由红帽公司开发的。NPTL与POSIX更加兼容。...通过Linux内核2.6的高级特性,例如,新的clone()系统调用、信号处理的实现等等,它具有比LinuxThreads更高的性能和伸缩性。 NPTL与LinuxThreads有一些不兼容。...一个依赖于LinuxThreads的应用可能不能在NPTL实现中工作。 Next Generation POSIX Thread(NGPT) NGPT是一个IBM开发的POSIX线程库。

    1.3K60

    java 并发篇- 概念篇

    进程 & 线程 Linux 进程 Linux进程可以被视为运行程序的实例。...Linux线程 Linux中的线程只是流程的执行流程。包含多个执行流程的流程称为多线程流程。...之后 linuxThreads 被 NPTL 取代了,实现发生了变化,NPTL的解决方法与LinuxThreads类似,内核看到的首要抽象依然是一个进程,这种进程称为轻量级进程,新线程是通过clone(...但是NPTL需要特殊的内核支持来解决同步的原始类型之间互相竞争的状况。在这种情况下线程必须能够入眠和再复苏。 NPTL是一个所谓的1×1线程函数库。...在Linux中。内核线程本质上是没有用户空间的进程。用户空间线程是正常的POSIX线程(NPTL)。用户空间进程共享文件描述符,可以共享代码段, 但生活在完全独立的虚拟地址空间中。

    45640

    运维架构师进阶:Linux进程管理

    图1-4 进程和线程 在现在的Linux实现中,线程支持UNIX的可移植操作系统接口(POSIX)标准库。在Linux操作系统中有几种可用的线程实现。...Native POSIX Thread Library(NPTL)正在取代LinuxThreads。LinuxThreads在将来的Linux企业发行版中将不被支持。...Native POSIX Thread Libary(NPTLNPTL最初是由红帽公司开发的。NPTL与POSIX更加兼容。...通过Linux内核2.6的高级特性,例如,新的clone()系统调用、信号处理的实现等等,它具有比LinuxThreads更高的性能和伸缩性。 NPTL与LinuxThreads有一些不兼容。...一个依赖于LinuxThreads的应用可能不能在NPTL实现中工作。 Next Generation POSIX Thread(NGPT) NGPT是一个IBM开发的POSIX线程库。

    1.4K100
    领券