FreeBSD의 stdio.h의 변수 선언은 '__isthreaded'입니다. 프로세스가 스레드를 만들 때까지이 변수는 0입니다. libc에서 잠금 함수를 호출하지 않도록하는 데 사용됩니다.FreeBSD의 __isthreaded 동등한 리눅스
그러나 이것은 스레드의 존재를 확인하는 이식성있는 방법이 아닙니다. Linux는 이것을 지원하지 않습니다. Linux에 동등한 변수 또는 API가 있습니까? FreeBSD에서 Linux로 일부 코드를 이식하려고합니다.
미리 도움을 주셔서 감사합니다.
아마도 존재하지 않고'#define __isthreaded 1' –
하지만 같은 행동을하는 것은 도움이되지 않습니다. 예를 들어, __isthreaded가 0이 아닌 경우에만 pthread_mutex_lock()을 호출하면됩니다. 위의 #define을 사용하면 항상 잠금이 호출됩니다. – jestin
예, 항상 동기화 프리미티브를 호출합니다. 요즘 큰 문제는 아닙니다. 정말로 원한다면'/ proc/self/task/'를 사용하고 내부 디렉토리의 수를 세어 스레드 수를 세지 만 훨씬 느립니다. –