嵌入式Linux平台上是否有可用的Posix线程?

3
有时我会读到(如果我没有理解错)在某些平台上,如一些实现了自己的线程机制的RTOS,可能无法使用或不可用POSIX线程。
那么,posix线程可以被认为是标准的吗(至少在通用操作系统上)?并且它是否与平台无关?
2个回答

4

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

不,POSIX线程并非所有操作系统都支持。

我认为std::thread实现依赖于一些常见的POSIX线程特性。

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

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

"某些RTOS等平台不支持posix线程,而是实现了自己的线程机制。"

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

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


这不是问题的答案。 - Vlad from Moscow
2
@VladfromMoscow,你又回到了旧的报复性投票模式。我有点厌倦你了。 - πάντα ῥεῖ
1
@VladfromMoscow,“你在这里看到了报复吗?”这是你行为中的一种模式,我早就看到过了(我甚至相信,你今年早些时候已经因此被禁言过了)。 - πάντα ῥεῖ
看到你认为自己是不可触及的,真是有趣。我已经准备好讨论这个问题,但似乎你不想这样做。很抱歉。 - Vlad from Moscow
@VladfromMoscow 好的,让我们讨论一下如何改进我的答案或者你自己提供更好的答案。 - πάντα ῥεῖ
显示剩余9条评论

3
POSIX是指定pthread的标准,它是定义操作系统行为和函数的一组标准。操作系统要么实现标准,要么不实现。POSIX的目标是平台独立性,所有平台上都使用相同的操作系统调用,但像所有标准一样,人们会在边缘添加东西以获得额外的功能,这些功能不可移植,或者在出现问题时留下一些东西。
Linux实现了POSIX相当严格(但甚至不是所有的Linux系列都同意有多严格),因此您需要关注兼容性边缘情况,我希望这些情况现在已经有很好的文档记录。
Windows对POSIX的支持非常弱,因此您不能在通用操作系统上依赖它。
我建议在这里快速搜索SO、Google或查阅维基百科,以获得更好的POSIX描述。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接