【发布时间】:2026-02-06 08:20:11
【问题描述】:
C 支持多线程吗?如果是,那我该如何尝试?是否有任何开源库可以让我这样做,Mac OS X 是否支持该库?
我没有找到任何文章说它受支持。
【问题讨论】:
-
尝试 POSIX pthreads..pubs.opengroup.org/onlinepubs/007908799/xsh/pthread.h.html
标签: c multithreading macos
C 支持多线程吗?如果是,那我该如何尝试?是否有任何开源库可以让我这样做,Mac OS X 是否支持该库?
我没有找到任何文章说它受支持。
【问题讨论】:
标签: c multithreading macos
C 本质上不是多线程语言;但是有许多库添加了线程功能。
pthreads 是与任何 POSIX 系统兼容的库,因此在 OSX 上受支持。我发现https://computing.llnl.gov/tutorials/pthreads/ 是一个不错的起点。
Win32 有一个 C 线程库,在 https://docs.microsoft.com/en-us/cpp/parallel/multithreading-with-c-and-win32 中描述。
Glib增加了线程支持,并且具有完全跨平台的优势,只要目标机器上安装了glib即可。这里有一些信息:http://developer.gnome.org/glib/2.28/glib-Threads.html
【讨论】:
C 没有任何线程的概念。 C 标准中没有线程支持。有一些可用的扩展可以实现多线程 - 其中之一是 pthreads。
请注意,因为 C 语言没有对线程的自然支持,作为程序员,您必须处理所有事情,并且您不会受到多线程编程的任何陷阱的保护。
【讨论】:
新的方言 - C1X,将提供开箱即用的多线程,正如*所述:
多线程支持(_Thread_local 存储类说明符、包含线程创建/管理功能的标头、互斥体、条件变量和线程特定的存储功能,以及 _Atomic 类型限定符和用于不间断对象访问)。
目前courae如上,c-C99最新方言不支持多线程
【讨论】:
P线程。 OSX 支持 posix。
【讨论】:
我猜想 Mac OS X 上的大多数多线程编程都是用 Objective-C 或 C++ 完成的,而不是普通的 C。(我意识到这并不完全是对您提出的问题的回答,但您可能想了解替代方案。)在 Objective-C 中,您将使用 NSThread,或者在 Snow Leopard 和更高版本中,使用 Grand Central Dispatch (GCD)。在 C++ 中,您可以使用来自 boost.org 的线程库,它具有跨平台的优势。
【讨论】: