gpt4 book ai didi

C多线程起源

转载 作者:太空狗 更新时间:2023-10-29 17:27:20 24 4
gpt4 key购买 nike

在我的 C Programming Language 副本中(又名:K&R),似乎没有提到多线程。这本书没有我想象的那么完整吗?多线程是不是写出来后才出现的?我是不是想错了?

多线程概念在 C 语言世界中的位置如何?


编辑:我认为我原来的问题是:

  • 你可以用C写任何东西
  • 存在多线程
  • 你不能用 C 编写多线程 <-- 逻辑矛盾

是什么导致了这种矛盾?多线程的起源在哪里?如果是POSIX,那么POSIX不是用C写的是什么? C无法访问的汇编形式?

最佳答案

C 是一种相当低级的语言。典型 C 程序中对线程的支持来自操作系统,而不是来自 C 运行时 - 如果您的环境不支持线程,那么您将不得不自己实现它们,找到支持它的库,或者不使用线程。这与 Java 这样的语言形成对比,在 Java 中,运行时环境提供许多服务,这些服务保证可供 Java 程序使用,无论底层操作系统是否以 Java 平台公开的方式支持它们。

现在,话虽如此,我很确定当 K&R 的第一版发布时,Unix 不支持线程。由于 C 最初是作为 Unix 环境的系统语言实现的,因此它不支持 native 线程也就不足为奇了。

如果您正在为类似 Unix 的环境编写代码,并且需要一个支持良好的 API 来在 C 中实现多线程程序,请寻找 POSIX 线程。

关于C多线程起源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/774661/

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