作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
FreeBSD 的 stdio.h 有一个变量 '__isthreaded' 的外部声明。在进程创建线程之前,此变量为零。它用于避免在不需要时调用 libc 中的锁定函数。
但这不是检查线程是否存在的可移植方法。 Linux 不支持这个。我们在 Linux 中有任何等效的变量或 API 吗?我正在尝试将一些代码从 FreeBSD 移植到 Linux。
在此先感谢您的帮助。
最佳答案
glibc 为提供几乎相同的功能所做的是为 glibc 中的大多数 pthread 库定义 stub 函数。这些调用什么也不做,而且速度非常快。
一旦链接了 libpthread.so,它的符号就会覆盖弱 glibc 符号,然后调用真正的函数。
因此包含 pthread 并调用锁定函数,但不要与其链接。
关于linux - FreeBSD 在 Linux 中的 __isthreaded 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21154211/
FreeBSD 的 stdio.h 有一个变量 '__isthreaded' 的外部声明。在进程创建线程之前,此变量为零。它用于避免在不需要时调用 libc 中的锁定函数。 但这不是检查线程是否存在的
我是一名优秀的程序员,十分优秀!