在嵌入式Linux平台上是否可以使用Posix线程

Is Posix threads available on embedded Linux platform?

本文关键字:可以使 Posix 线程 是否 嵌入式 Linux 平台      更新时间:2023-10-16

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

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

"那么,posix线程可以被视为标准(至少在通用操作系统上)吗?"

不,POSIX线程不是OS的标准支持。

我想说std::thread实现依赖于一些POSIX线程共同定义的特性。

嵌入式Linux平台当然是POSIX兼容的,你可以依赖pthreads

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

" posix线程在某些平台上不可用或无效,例如一些实现了自己线程机制的rtos。"

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

基本的线程语义通常可以很好地包装为POSIX标准要求,并注入到newlib或任何你喜欢使用的绑定来实现标准的实现。

POSIX,指定pthread的标准,是定义操作系统行为和功能的一个标准(实际上,更像是一组标准)。操作系统要么实现标准,要么不实现标准。POSIX的目标是平台独立性,所有平台上的所有操作系统调用都是相同的,但与所有标准一样,人们将一些东西固定在边缘以获得不可移植的额外功能,或者在出现问题时将一些东西删除。

Linux相当接近地实现了POSIX(但甚至不是所有的Linux家族都同意有多接近),所以您关注的将是兼容性边缘情况,我希望在这一点上会有很好的文档。

Windows POSIX的支持是弱的,所以你不能指望它在通用的操作系统。

我建议在这里快速搜索一下SO,谷歌或给维基百科看看关于POSIX的更好的描述。