有时我会读到(如果我没有理解错)在某些平台上,如一些实现了自己的线程机制的RTOS,可能无法使用或不可用POSIX线程。
那么,posix线程可以被认为是标准的吗(至少在通用操作系统上)?并且它是否与平台无关?
那么,posix线程可以被认为是标准的吗(至少在通用操作系统上)?并且它是否与平台无关?
"那么,posix线程可以被认为是标准的吗(至少在通用操作系统上)?"
不,POSIX线程并非所有操作系统都支持。
我认为std::thread
实现依赖于一些常见的POSIX线程特性。
嵌入式Linux平台当然兼容POSIX,并且您可以依赖pthreads
。
例如Windows平台(作为通用操作系统计算)本身不支持POSIX线程,但可使用MinGW或cygwin等包装器API。
"某些RTOS等平台不支持posix线程,而是实现了自己的线程机制。"
其他嵌入式平台如FreeRTOS不直接支持该线程模型,但可以编写POSIX包装器。
基本的线程语义通常可以很好地满足POSIX标准要求,并注入到newlib或您想要用作绑定以实现标准实现的任何内容中。