2015年7月1日 星期三

pthread on Linux

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

沒有留言:

張貼留言