gpt4 book ai didi

c - pthread 是如何工作的?

转载 作者:太空狗 更新时间:2023-10-29 16:27:54 25 4
gpt4 key购买 nike

我在使用 Java 和 C# 进行多线程编程方面经验丰富,并且正在开始学习如何在 Linux 上使用 C 进行编程。我在 Linux 的编程意义上“长大”,所以我在较高层次上理解它的内存哲学、进程处理等。

我的问题不是如何进行线程化。我想知道 pthread 实际上是如何做到的。它会 fork 一个进程并以某种方式为您处理进程间通信吗?或者它只是管理地址空间?我想要具体细节 :) 谷歌搜索只产生了“如何做”的问题,而不是“它是如何工作的”。

最佳答案

细节可能太复杂而无法真正进入(不发布指向 glibc 源代码的链接),但我可以为您提供更好的东西供您查找:

  1. Pthread 使用 sys_clone()创建新线程,内核将其视为一项新任务,恰好与其他线程共享许多数据结构。

  2. 为了同步,pthread 严重依赖futexes在内核中。

关于c - pthread 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4854940/

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