由于C语言不提供任何面向对象的概念,我想知道它是否也不支持多线程?我在网上搜索过 - 有人能给我答案吗?
答案 0 :(得分:9)
使用C11,该语言完全支持线程,包括从C ++ 11继承的内存模型。例如,它具有threads,condition variables,mutexes和thread local storage的功能。
在C11之前,人们通常在unix系统上使用pthreads,在窗口上使用CreateThread,这是通过实现定义的行为(不是C标准)来支持的。多线程行为主要是遵循该硬件的行为。
答案 1 :(得分:2)
C无疑具有多线程支持。看看pthread。这是一个关于pthread的教程:
答案 2 :(得分:1)
语言是否面向对象并不影响它对线程的支持。
是的,您可以使用带有C的线程,并且可以使用各种库来执行此操作,pthreads就是其中之一。
答案 3 :(得分:1)
C1X 会支持线程,但是现在 c99 中有没有这样的东西。 人们确实使用 less 便携式扩展,如POSIX线程( pthreads ),分叉等。
标准C1X 仍然是草案,编译器的支持有点缺乏,gcc部分支持它,但我听说线程尚未完成(我的意思是,不稳定,开发) gcc的版本,而不是4.6)。
答案 4 :(得分:1)