что я не понимаю, так это поскольку каждый поток использует свой собственный стек для хранения своего идентификатора потока, и, очевидно, потоки не разделяют стек с другими, так что означает стек потоков LIFO?
Потоки могут делиться своими стеками с другими, если хотят. Каждый поток, имеющий свой собственный стек, не препятствует доступу одного потока к стеку другого потока.
поскольку поток только помещает свой поток в стек, который не будет содержать идентификатор другого потока, зачем использовать здесь термин LIFO, разве этот LIFO не имеет смысла, только если мы можем поместить несколько элементов в стек?
Тот факт, что каждый поток имеет свой собственный стек, не мешает другим существовать для других целей. То, что каждый поток имеет свой собственный стек, никак не влияет на то, что может делать семпахор со стеком.
Подумайте о яблоках. Вы можете иметь их. Вы можете поделиться ими. Вы можете съесть их.
Теперь, скажем, есть десять детей, и у каждого есть свое яблоко. Означает ли это, что не может существовать одиннадцатое яблоко, которым поделились? Это мешает им делать другие вещи с другими яблоками? Нет, это не так.
Так что, да, каждый поток имеет свой собственный стек. И они также могут делиться этими стеками, если хотят.
Но также семафор может иметь стек. И он может делать что угодно с этим стеком. Это никак не связано с другими стеками, которые могут иметь потоки.