• LinuxThreads 和 NPTL


    http://www.ibm.com/developerworks/cn/linux/l-threading.html

    Linux 线程模型的比较:LinuxThreads 和 NPTL
    进行移植的开发人员需要了解的关键区别摘要
    LinuxThreads 项目最初将多线程的概念引入了 Linux®,但是 LinuxThreads 并不遵守 POSIX 线程标准。尽管更新的 Native POSIX Thread Library(NPTL)库填补了一些空白,但是这仍然存在一些问题。本文为那些需要将自己的应用程序从 LinuxThreads 移植到 NPTL 上或者只是希望理解有何区别的开发人员介绍这两种 Linux 线程模型之间的区别。

    GNU_LIBPTHREAD_VERSION 宏

    大部分现代 Linux 发行版都预装了 LinuxThreads 和 NPTL,因此它们提供了一种机制来在二者之间进行切换。要查看您的系统上正在使用的是哪个线程库,请运行下面的命令:

    $ getconf GNU_LIBPTHREAD_VERSION

    这会产生类似于下面的输出结果:

    NPTL 0.34

    或者:

    linuxthreads-0.10

    linux 系统中单个进程的最大线程数有其最大的限制 PTHREAD_THREADS_MAX
    
    这个限制可以在 /usr/include/bits/local_lim.h 中查看
    
    对 linuxthreads 这个值一般是 1024,对于 nptl 则没有硬性的限制,仅仅受限于系统的资源
    
    这个系统的资源主要就是线程的 stack 所占用的内存,用 ulimit -s 可以查看默认的线程栈大小,一般情况下,这个值是 8M
    
    可以写一段简单的代码验证最多可以创建多少个线程
    
    int main()  
    {  
        int i = 0;  
        pthread_t thread;  
     
        while (1) {  
                 if (pthread_create(&thread, NULL, foo, NULL) != 0)  
            return;  
                i ++;  
            printf("i = %d
    ", i);  
        }  
    } 
  • 相关阅读:
    paddlex 使用-7 windows下脚本生成nb文件
    paddlex 使用-6 在Android下预测
    paddlex 使用-5 Andrdroid4.1报错插件无法删除
    paddlex 使用-4 format = EXTENSION[ext].6错误
    paddlex 使用-3 模型加载预测
    paddlex 使用-2 GUI版本
    paddlex 使用-1 安装
    企业微信登录态与显示姓名
    计算工龄(月份)的C#算法
    一个比较好用的Mongodb 工具
  • 原文地址:https://www.cnblogs.com/FlyAway2013/p/4728263.html
Copyright © 2020-2023  润新知