gpt4 book ai didi

linux - pthread_join 是如何实现的?

转载 作者:IT王子 更新时间:2023-10-29 00:07:04 26 4
gpt4 key购买 nike

我对线程有点陌生,所以你必须原谅这个问题的天真。

pthread_join 是如何实现的,它是如何影响线程调度的?

我总是想象 pthread_join 是用 while 循环实现的,只是导致调用线程让步,直到目标线程完成。像这样(非常近似的伪代码):

atomic bool done;thread_run {    do_stuff();    done = true;}thread_join {    while(!done) {        thread_yield();    //  basically, make the thread that calls "join" on    //  our thread yield until our thread completes    }}

这是一个准确的描述,还是我大大简化了这个过程?

干杯!

最佳答案

pthread_join 可能在内部实现为等待线程退出时触发的信号量,无论是在调用 pthread_exit 还是在其主函数退出时。

无论如何,glibc 的源代码是可用的,尝试谷歌代码搜索(我在那里看到了一些有用的东西)

关于linux - pthread_join 是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2821881/

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