c++ - 从基于 c++0x std::thread 的 C++ 库中公开完整的(C 语言)pthread 接口(interface)

标签 c++ c c++11 pthreads

在概念上是否可以编写一个基于 std::thread(可能还有其他 C++0x 部分)的小型包装器库,将完整的 pthread 接口(interface)暴露给 C 程序?

(如果您想知道这有什么用:在假设的世界中,主流操作系统内核是用 C++ 编写的,并附加了一个完全符合 C++0x 的标准库,这将是一个问题,因为我正在谈论/考虑的内核没有公开 C 接口(interface),只有一个基于其“ native ”C++“后端”的 C 标准库)

最佳答案

是的,这样的实现应该是可能的。我什至曾经写过一个简单的版本,只是为了证明我可以。

有一些东西很棘手,但大多数东西(例如互斥量、条件变量、线程)都是一个简单的包装器。

异步取消是棘手的事情之一——它需要操作系统的支持才能异步中断线程,因此真正的异步取消不能写在“纯”C++0x 线程之上。当然,无论如何,您都可以将取消延迟到取消点,尽管正如 R 指出的那样,这将是该功能的低质量实现。

关于c++ - 从基于 c++0x std::thread 的 C++ 库中公开完整的(C 语言)pthread 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5109687/

相关文章:

android - 从 VS2013 C++ 代码创建 APK 文件

c++ - 将 QProgressBar 设置为从逻辑层更新的正确方法是什么?

C- 参数输入

c - 如何在 c 中测试线程安全的实现?

c++ - 使用受限函数时的尾随返回类型问题

c++ - 从整数索引 for 循环枚举到范围 for

c++ getter不返回值(NULL)

C++ 指针类型和引用调用

C - 一个非 INT 函数示例?

c++ - Bitmask应该被提升到更多的可能性