pthread (POSIX Thread)
首先,pthread 在 Linux 裡面,可分為 LinuxThreads 和 NPTL 兩種,LinuxThreads 算是比較舊的實作方式,最主要是在 glibc 2.4 和 uclibc 0.9.32 以前的版本。NPTL 算是現在 Linux 在實作 pthread 的方式,算是比較符合 POSIX 的標準。
詳細的差異,可以參照 pthread manual,例如:
LinuxThreads 會產生額外的 manager thread 去 handle 所產生出來的 thread,並且每個 thread 會有個別的 PID。在 signal 或其他等等的部分,也一樣會有 共享 和 個別 的差異。
pthread manual: http://man7.org/linux/man-pages/man7/pthreads.7.html
POSIX wiki: https://en.wikipedia.org/wiki/POSIX
LinuxThreads wiki: https://en.wikipedia.org/wiki/LinuxThreads
NPTL wiki: https://en.wikipedia.org/wiki/Native_POSIX_Thread_Library
POSIX Threads wiki: https://en.wikipedia.org/wiki/POSIX_Threads
最後,可以在 bash 的提示字元中,輸入 getconf GNU_LIBPTHREAD_VERSION,bash 會回應你目前系統的 pthread 是哪一種。
補充,這邊有更詳細的說明 www.ibm.com/developerworks/cn/linux/l-threading.html
沒有留言:
張貼留言