gpt4 book ai didi

linux - 每个信号量的线程堆栈是多少

转载 作者:太空宇宙 更新时间:2023-11-04 04:52:38 24 4
gpt4 key购买 nike

我知道每个线程都有自己的堆栈。

我的教科书说:

假设特定信号量实现对每个信号量使用 LIFO 线程堆栈。当线程在 P 操作中阻塞在信号量上时,其 ID 会被压入堆栈。同样,V操作从堆栈中弹出顶部线程ID并重新启动该线程

我不明白的是。由于每个线程都使用自己的堆栈来存储其线程 ID,并且显然线程不与其他线程共享堆栈,那么线程的 LIFO 堆栈意味着什么?因为一个线程只会将自己的线程放入堆栈中,而不会包含另一个线程的 id,所以为什么在这里使用 LIFO 术语,难道 LIFO 只有当我们可以将多个项目压入堆栈时才有意义吗?

最佳答案

您的操作系统需要知道哪些线程正在等待每个信号量。为了维护该列表,操作系统可以对每个信号量对象使用LIFO数据结构,即stack

不要将它与每个线程的stack混淆。

关于linux - 每个信号量的线程堆栈是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54175543/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com