【发布时间】:2012-12-17 11:11:22
【问题描述】:
我想为 C 创建或找到一个简单的、独立于平台的并发(又名线程)库。我想在不使用依赖于操作系统的线程 API 的情况下实现它。它不需要是“真正的线程”,这就是我避免使用该术语的原因。实现这个库的程序应该作为一个单一的进程出现在操作系统中。
我研究了一些选项,例如 OpenMP、Windows 的 hacky pthreads 实现、Intel Cilk Plus、Duff 设备的变体(看起来很有希望)等等。我已经在这个网站上搜索了线索。是时候开辟自己的道路了。
我已经缩小了范围。我想在尽可能接近标准的 C 中执行此操作(更喜欢避免使用 C11、Boost 等)。理想情况下,我希望完全不使用外部库来执行此操作。如果必须使用它们,则不得使用运行时。
如果我知道从哪里开始,我完全有信心可以完成这项工作。我不是 C 方面的专家,但我是一个非常有能力的自学老师。我正在寻找的是关于实现这个库的建议、指示或想法。
目前的想法:我应该伪造或重新实现程序集的共享内存模型,使用程序计数器、返回指针等。叫我疯了...
相关:Threading Implementation(第一个答案。)我正在寻找更多这样的。
也相关:http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=54489
【问题讨论】:
-
如果你还没有看过apr.apache.org
-
顺便说一句,现在是 ISO C,ANSI 提供了很多输入,但他们只是在 ISO 出来时给它加盖印。
-
感谢你们俩。 (我是刚参加 SO 的新手——我可以为你的 cmets 投票吗?)
-
更改您的执行上下文以创建像线程这样的东西完全依赖于操作系统并且需要使用特定的 API。
-
这就是为什么我专门询问代码并发或伪线程,而不是实际线程。
标签: c multithreading cross-platform iso