C语言是否支持多线程?

时间:2011-09-23 05:23:09

标签: c multithreading compiler-construction

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

5 个答案:

答案 0 :(得分:9)

使用C11,该语言完全支持线程,包括从C ++ 11继承的内存模型。例如,它具有threadscondition variablesmutexesthread local storage的功能。

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

语言是否面向对象并不影响它对线程的支持。

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

答案 3 :(得分:1)

C1X 会支持线程,但是现在 c99 中有没有这样的东西。 人们确实使用 less 便携式扩展,如POSIX线程( pthreads ),分叉等。

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

答案 4 :(得分:1)

检查这些:

多线程计算和面向对象的功能之间没有关系。这将取决于您如何设计代码,这将告诉它是否面向对象。