问题
I'm developing a multi threaded Unix application in C. Is there a simple way to get the count of the number of simultaneously active threads? I don't want to have to write the code to keep track of the number of active thread if it already can be done for me by the library! :-)
I'm using POSIX pthreads, and I'm trying to write as portable as possible code for Unix and Unix-like systems.
回答1:
No, not in pthreads per se. POSIX Threads tries to specify only primitives or basic utility constructs, and considers even pthread_join a convenience function, not a primitive.
Certain libraries may offer non-portable solutions (look for _np
in the name on HP-UX, for instance), but for pthreads per se, you're on your own.
回答2:
You could I guess keep a count of it in the constructor/destructor but make sure you handle it concurrently as to avoid race conditions.
来源:https://stackoverflow.com/questions/1713129/c-library-function-to-get-number-of-active-threads