この投稿のおかげで、Python スレッドがそれぞれのスレッド ID を報告するようになりました。最初にgrep -r 'SYS_gettid' /usr/include/'
. 行を取得しました:で#define SYS_gettid __NR_gettid
さらにgrepするとgrep -r '__NR_gettid' /usr/include/
、一致する行がたくさんありました:
/usr/include/x86_64-linux-gnu/asm/unistd_32.h:#define __NR_gettid 224
/usr/include/x86_64-linux-gnu/asm/unistd_64.h:#define __NR_gettid 186
/usr/include/asm-generic/unistd.h:#define __NR_gettid 178
次に、アーキテクチャに一致するものを選択します。私の場合は 186 でした。すべての Python スレッド スクリプトに次のコードを含めて、OS から見たスレッド ID を取得します。
import ctypes
tid = ctypes.CDLL('libc.so.6').syscall(186)