Foundationপ্রথম নীতি থেকে
LEVEL 4 · Operating Systems

Thread Group

থ্রেড গ্রুপ

একই process-এর সব thread মিলে একটা thread group। Group-এর নেতার TID-ই process-এর PID, আর `getpid()` সেটাই ফেরত দেয়।

also: TGID

Linux-এ প্রতিটা task-এর দুইটা সংখ্যা:

মানেকোন API
TIDএই নির্দিষ্ট task-এর idgettid()
TGIDthread group-এর নেতার TIDgetpid()

একটা single-threaded process-এ TID == TGID। Thread বানালে প্রতিটার আলাদা TID কিন্তু একই TGID।

এজন্যই একটা multithreaded প্রোগ্রামে সব thread-এ getpid() একই মান দেয়, কিন্তু gettid() আলাদা।

ps -o pid,tid,comm -L -p <pid>
cat /proc/<pid>/status | grep -E "^(Pid|Tgid|Threads)"

সংকেত পাঠানোর ক্ষেত্রে গুরুত্বপূর্ণ: kill(pid, sig) পুরো thread group-এ পাঠায় (যেকোনো একটা thread যেটা signal block করেনি সেটা পাবে), আর tgkill(tgid, tid, sig) একটা নির্দিষ্ট thread-এ।

POSIX বলে signal process-স্তরের, thread-স্তরের নয় — আর Linux সেটা TGID দিয়ে বাস্তবায়ন করে।