只要没有争用,就不会进行系统调用.如果存在争用,则进行系统调用以将线程置于休眠队列中,然后该休眠队列将用于查找当互斥锁变为空闲时唤醒的第一个线程.此外,在系统调用中对futex的值进行调整,以便当前拥有的线程不会通过用户域"快速路径"解锁例程(它只是将futex重置为零或"解锁")但是,它会调用另一个系统来检查休眠队列,以便等待线程将锁所有权传递给.随着更多的线程竞争锁定,当然会发现争用的可能性更高,但是如果没有争用,那么就没有进行系统调用.
归档时间: |
|
查看次数: |
4041 次 |
最近记录: |