gpt4 book ai didi

unix - POSIX 线程 : are pthreads_cond_wait() and others systemcalls?

转载 作者:行者123 更新时间:2023-12-04 23:10:41 27 4
gpt4 key购买 nike

POSIX 标准基于互斥锁和条件变量等概念定义了多个线程同步例程。

我现在的问题是:这些(例如 pthreads_cond_init()、pthreads_mutex_init()、pthreads_mutex_lock()...等等)是系统调用还是库调用?我知道它们是通过“pthread.h”包含的,但是它们最终会导致系统调用并因此在操作系统的内核中实现吗?

最佳答案

在 Linux 上,pthread 互斥锁会进行“futex”系统调用,但前提是锁被争用。这意味着获取其他线程不想要的锁几乎是免费的。

以类似的方式,只有当有人在等待时,发送条件信号才会很昂贵。

所以我相信你的答案是 pthread 函数是有时会导致系统调用的库调用。

关于unix - POSIX 线程 : are pthreads_cond_wait() and others systemcalls?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1583271/

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