有时我读到(如果我没有解释错的话)posix 线程在一些平台上不可用或无效,例如某些实现了自己的线程机制的 RTOS。

那么,posix 线程是否可以被视为标准(至少在通用操作系统上)?它是平台独立的吗?

最佳答案



不,支持 POSIX 线程不是操作系统的标准。

我想说的是 std::thread 实现依赖于一些 POSIX 线程通常定义的功能。

嵌入式 Linux 平台当然与 POSIX 兼容,您可以依赖 pthreads

例如,Windows 平台(算作通用操作系统)本身不支持 POSIX 线程,但有可用的包装器 API,例如MinGW 或 cygwin。



其他嵌入式平台(如 FreeRTOS)不直接支持该线程模型,但有资格编写 POSIX 包装器。

基本的线程语义通常可以很好地满足 POSIX 标准要求,并注入(inject)到 newlib 或任何您喜欢用作实现标准实现的绑定(bind)中。

关于c++ - Posix 线程在嵌入式 Linux 平台上可用吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32158234/

10-10 09:38
查看更多