Thread Group
থ্রেড গ্রুপ
একই process-এর সব thread মিলে একটা thread group। Group-এর নেতার TID-ই process-এর PID, আর `getpid()` সেটাই ফেরত দেয়।
also: TGID
Linux-এ প্রতিটা task-এর দুইটা সংখ্যা:
| মানে | কোন API | |
|---|---|---|
| TID | এই নির্দিষ্ট task-এর id | gettid() |
| TGID | thread group-এর নেতার TID | getpid() |
একটা 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 দিয়ে বাস্তবায়ন করে।