0

用户线程中的等待锁是如何实现的?

假设线程A正在尝试获取另一个线程B使用的锁。A意识到锁被其他线程锁定后,他究竟做了什么?它如何停止自己的执行?他停下来后谁跑?

我在内核线程中读到,线程可以调用一个系统调用来挂起它并将其放入等待队列中。但是在用户线程中,系统不知道线程,所以应该有一个由用户管理的队列吗?

4

1 回答 1

0

用户线程通过系统调用检查锁的可用性,因此在系统级别做出决定,并且正在执行的代码具有必要的特权,可以在必要时将线程放入等待队列。

于 2014-06-04T13:22:42.953 回答