有时我读到(如果我没有解释错的话)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/