C语言支持多线程吗?

问题描述 投票:0回答:5

由于C语言没有提供任何面向对象的概念,我想知道它是否也不支持多线程?我在网上搜索了 - 有人可以给我答案吗?

c multithreading
5个回答
12
投票

在 C11 中,该语言完全支持线程,包括从 C++11 继承的内存模型。例如,它具有线程条件变量互斥体线程本地存储等功能。

在 C11 之前,人们通常在 unix 系统上使用 pthreads,在 Windows 上使用 CreateThread,这是通过实现定义的行为(而不是 C 标准)支持的。多线程行为主要取决于该硬件的行为。


2
投票

C 毫无疑问具有多线程支持。查看 pthread。这是关于 pthread 的教程:

https://computing.llnl.gov/tutorials/pthreads/


2
投票

C1X将支持线程,但现在,c99中没有这样的东西。 人们确实使用less可移植扩展,例如 POSIX 线程(pthreads)、forking等。

标准C1X

仍然是草案,编译器的支持有些缺乏,gcc部分支持它,但我听说线程还没有完成(我的意思是,不稳定,gcc的开发版本,而不是4.6)。


1
投票

是的,您可以在 C 中使用线程,并且可以使用各种库来执行此操作,pthreads 就是其中之一。


1
投票

阅读
    pthreads
  • 参见
  • OpenMP
  • 看看
  • Cilk
  • 并且多线程计算和面向对象特性之间没有任何关系。这将取决于您如何设计代码,这将判断它是否是面向对象的。

© www.soinside.com 2019 - 2024. All rights reserved.