Welcome 微信登录

首页 / 操作系统 / Linux / Linux的三种线程实现模型漫谈

最近研究Mysql源代码,其基于 One thread per connection现在我们通过对Linux下的线程模型的学习来串起一系列的知识点:linux支持的三种线程模型:1,linux Threads,这是linux标准的的线程库,但是与IEEE的POSIX不兼容.2.Native POSIX Thread Library(简称NPTL,原生的POSIX线程库),这个线程库是RedHat开发的,支持clone()线程的系统调用,在REDHAT (KERNEL 2.6)Linux 默认是这个库.3.Next Generation POSIX Thread(NGPT)由IBM开发的与标准的POSIX线程库兼容.但是IBM表示可能会在将来不会进行继续开发.可以肯定的是NPTL要比LT给力得多哈!
你可以通过下面的命令来确定你的系统所支持的各个glic库的线程实现模型:* 当然我们可以使用getconf命名简单的获得pthread的版本但这无法引出更多的知识点,getconf命令如下:www.linuxidc.com@linuxidc:/lib/x86_64-linux-gnu$ getconf GNU_LIBPTHREAD_VERSION
NPTL 2.13我的Linux 为Ubuntu11.04,测试如下:(cat /etc/issue 可以看ubuntu的版本号)以MYSQL数据库为列子.知识点一:首先我介绍怎么知道系统都有那些动态链接库,以动态链接库路径的查找顺序:ldconfig -p 可以打印出ldconfig的缓存/etc/ld.so.cache知识点二:
linux下动态链接库的查找顺序是:
1.LD_LIBRARY_PATH下的库
2.系统缺省库路径/lib and /usr/lib
3./etc/ld.so.conf 里指定的一系列路径。知识点三:线程库是在GLIBC库里实现的,文件名为libc.so.6,我机器上的版本是2.13,其实libc.so.6只是一个符号链接。用file命令查看它。                            www.linuxidc.com@linuxidc:/lib/x86_64-linux-gnu$ file libc.so.6
libc.so.6: symbolic link to `libc-2.13.so"我们先用ldd 查看我mysqldwww.linuxidc.com@linuxidc:/usr/sbin$ ldd mysqld
        linux-vdso.so.1 =>  (0x00007fff57bff000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fa74dd8d000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fa74db75000)
        libwrap.so.0 => /lib/libwrap.so.0 (0x00007fa74d969000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fa74d765000)
        libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007fa74d52c000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fa74d225000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fa74cfa0000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa74cc0c000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fa74eb92000)
        libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1 (0x00007fa74c9f1000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fa74c7db000)
可以知道我们的mysqld使用的是libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6  ,(我的Ubuntu是64位版本)。
进到该目录,查看具体的线程库名称:www.linuxidc.com@linuxidc:/lib/x86_64-linux-gnu$ ./libc.so.6 | grep [Tt]hreads
        Native POSIX Threads Library by Ulrich Drepper et al
  • 1
  • 2
  • 下一页
MySQL 使用GROUP_CONCAT实现统计报表使用automake自动生成Makefile相关资讯      Linux资料 
  • Linux触发连锁反应,惠及全球  (04/25/2012 05:49:29)
  • 【Linux】pam常用模块及意义  (04/18/2012 09:42:50)
  • 【Linux】配置Apache的别名的pam认  (04/18/2012 09:40:21)
  • 如何挂载只读的Linux文件系统  (04/19/2012 06:10:57)
  • 【Linux】ftp服务的ftpusers黑名单  (04/18/2012 09:42:02)
  • Linux 0.11 在Ubuntu-11和gcc-4.6.  (04/14/2012 11:06:44)
本文评论 查看全部评论 (0)
表情: 姓名: 字数