可以在 中找到容器代码/usr/include/c++/4.8.5/bits。其他 stl 库的源代码,例如 mutex、future 等呢?
1 回答
0
glibc 在 Linux 上使用 NPTL,互斥锁实现被拆分到各个目录:
nptlpthread_mutex_*.c:源文件中的高级 POSIX 线程互斥锁。sysdeps/nptl: 中 futex 包装器的文档和存根lowlevellock*.h。sysdeps/unix/sysv/linux:futex中的系统调用包装器lowlevellock-futex.h。- 特定于体系结构的子目录,例如
sysdeps/unix/sysv/linux/x86_64: 和 中用于低级锁定操作的内联汇编lowlevellock.h函数lowlevellock.S。
(GCC中的 C++ 标准库实现)中的大多数同步类型libstdc++本身libpthread就是 glibc 库组件的包装器(当然,仅在 GNU/Linux 上)。
于 2018-11-08T18:44:40.987 回答