gpt4 book ai didi

c - C是单线程语言吗

转载 作者:行者123 更新时间:2023-11-30 18:19:32 25 4
gpt4 key购买 nike

我最近在读 Ritchie 的《C 编程语言》,我注意到 C 是一种单线程语言。好吧,我想知道单线程语言和多线程语言之间到底有什么区别。如果C是单线程,那么它是异步还是同步?

最佳答案

C 编程语言现已成为标准,因此请阅读 C11规范,即n1570 。请记住,编程语言是一种规范(在某些技术报告中是这样定义的)而不是软件。 Ritchie 的书是关于 C 的旧版本(写于 20 世纪 80 年代,当时多核计算机和多线程还不存在,或者非常不寻常,而且 Ritchie 本人也没有任何这样的计算机或系统)。 C 标准(松散地)定义了 C 实现的行为(undefined behavior 是其中一个非常重要且棘手的概念)。

有一些thread C11 中的支持。

您还可以将 C99(甚至 C11)与某些外部库一起使用,例如 pthreads在 POSIX 上,提供线程。

您可以将线程(以及进程和文件)视为 operating systems 提供的某些功能或抽象。 。语言规范通常不会详细说明它们(例如,大多数操作系统都有 directories ,但 C 标准不会说明这些)。

实际上,如果您仔细阅读 C11 标准,您可能会注意到它甚至不需要(只是隐式包含)计算机硬件。原则上,C 实现可以是一个人类团队(并且“在教室中运行 C 程序,被视为计算机”是教授 C 的一种很好的方式)。在实践中,使用人类奴隶作为 C 实现是不道德且低效的,你应该更喜欢某种计算机(但什么是计算机并没有由 C11 标准定义)。

关于c - C是单线程语言吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50981541/

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