在第11章线程中11.4中讲到linux的pthread实现是用clone系统调用产生一个与父进程共享一定资源的轻量级子进程来模拟线程。书中的实验代码表明,pthread_create产生的线程有不同的process id,证实了linux线程实际上是用进程实现。网上的文章谈及linux线程概念无一例外是这个观点。然后这一切在2.6内核产生了变化,网上的文章已经out了. 我照着书中代码在fedora 7中用新版的gcc编译,产生出的多个线程却有一样的process id!!!经...
在GNU/linux操作系统中,Native POSIX Thread Library (nptl)是一种软件特性,它能够使遵循POSIX Threads规范的程序在linux内核上高效的运行。 测试表明,nptl能够让IA-32在两秒内启动100,000个线程,如果内核不支持nptl则需要15分钟。 使用下面的命令来查看当前内核nptl版本: # getconf GNU_LIBPTHREAD_VERSION 在2.6内核之前,进程是调度实体,也就是linux不支持线程。但是,它确实有一个系统调用-close()-用来拷贝...
linuxThreads 项目最初将多线程的概念引入了 linux®,但是 linuxThreads 并不遵守 POSIX 线程标准。尽管更新的 Native POSIX Thread Library(nptl)库填补了一些空白,但是这仍然存在一些问题。本文为那些需要将自己的应用程序从 linuxThreads 移植到 nptl 上或者只是希望理解有何区别的开发人员介绍这两种 linux 线程模型之间的区别。 当 linux 最初开发时,在内核中并不能真正支持线程。但是它的确可以通过clone()系统...
linuxThreads 项目最初将多线程的概念引入了 linux®,但是 linuxThreads 并不遵守 POSIX 线程标准。尽管更新的 Native POSIX Thread Library(nptl)库填补了一些空白,但是这仍然存在一些问题。本文为那些需要将自己的应用程序从 linuxThreads 移植到 nptl 上或者只是希望理解有何区别的开发人员介绍这两种 linux 线程模型之间的区别。 当 linux 最初开发时,在内核中并不能真正支持线程。但是它的确可以通过 clone() 系统...
安装linux发行版fedora4, 发现虽然内核是2.6 但我编写多线程程序, 使用线程库还是历史幽久的linuxthreads,而不是新的nptl. 请问要如何做才能让我的gcc使用新的库. 内核和gcc信息如下: [root@localhost linux-2.6.15.7]# gcc -v Using built-in specs. Target: i386-redhat-linux Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enab...
嗨,大家好,是这样的 维基百科是什么说的: nptl的解决方法与linuxThreads类似,内核看到的首要抽象依然是一个进程,新线程是通过clone()系统调用产生的。 ———————— 每产生一个线程,就要CLONE一下,这样不会降低效率吗?而且线程调度的时候,效率也没有用户级线程高吧? JAVA和PYTHON能实现用户级的线程,linux为什么不呢?为什么不用1:N的模型呢?是不是为了考虑到要在多核机器或者对称多处理器机器上面运行呢?
developerWorks 中国 > linux > 进行移植的开发人员需要了解的关键区别摘要 文档选项 未显示需要 JavaScript 的文档选项 打印本页 将此页作为电子邮件发送 级别: 中级 Vikram Shukla ( [email=vikshukl@in.ibm.com?subject=linux%20%E7%BA%BF%E7%A8%8B%E6%A8%A1%E5%9E%8B%E7%9A%84%E6%AF%94%E8%BE%83%EF%BC%9AlinuxThreads%20%E5%92%8C%20nptl]vikshukl@in.ibm.com[/email] ), 软件工程师, IBM 2006 年 8 ...
linux 线程模型的比较:linuxThreads 和 nptl 进行移植的开发人员需要了解的关键区别摘要 级别: 中级 Vikram Shukla ( [email=vikshukl@in.ibm.com?subject=linux%20%E7%BA%BF%E7%A8%8B%E6%A8%A1%E5%9E%8B%E7%9A%84%E6%AF%94%E8%BE%83%EF%BC%9AlinuxThreads%20%E5%92%8C%20nptl]vikshukl@in.ibm.com[/email] ), 软件工程师, IBM 2006 年 8 月 28 日 linuxThreads 项目最初将多线程的概念引入了 linux®,但是 linuxThreads ...