在嵌入式Linux平台上是否可以使用Posix线程
Is Posix threads available on embedded Linux platform?
有时我读到(如果我没有解释错的话)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的更好的描述。
- 是否可以使C++类成为Objc类的委托
- 是否可以使一个类成为两个不同层次结构的子类?
- 是否有编译器标志可以使较新的 gcc 版本像旧版本一样构建
- C 可以使destuructor不称为班级成员和基类攻击方的灾难
- 可以使未命名的结构静态
- 是否可以使整数仅收到一个单个数字而不是两个接收输入
- C++:有哪些常规方法可以使代码更有效地用于大数字
- 是否可以使 std 容器使用默认运算符为新?
- LD_BIND_NOW可以使可执行文件运行得更慢?
- 是否可以使头文件使文本居中?- 在控制台中
- 有什么方法可以使核心忙碌等待
- 有没有一种技术可以使虚函数在所有派生类中强制重写?
- 有没有一种方法可以使全局函数/静态成员函数一次可呼出
- 是否有一种方法可以使此C 14递归模板在C 17中短
- 编写一个可以使二维数组平坦的函数
- 有哪些优化技巧可以使我的代码运行得更快
- 有没有更好的方法可以使此代码线程安全?线程局部静态似乎是一个生硬的工具
- 如果必须在同一向量上写入线程,是否可以使用线程
- 对于具有两个模板化变量的模板化类,是否可以使一个 var 引用另一个 var
- C 中的内容可以使Windows 8应用程序不在手臂上运行