繁体   English   中英

ISO C中的跨平台并发库

[英]Cross-platform concurrency lib in ISO C

我想为C创建或找到一个简单的,独立于平台的并发(aka线程)库。我想在不使用依赖于OS的线程API的情况下实现这一点。 它不需要是“真正的线程”,这就是为什么我避免使用该术语的原因。 实现此库的程序应作为单个进程出现在OS中。

我研究了一些选项,例如OpenMP,适用于Windows的hacky pthreads实现,Intel Cilk Plus,Duff设备的变体(看起来很有希望)等等。 我已经在这个网站上搜寻潜在客户。 是时候树立自己的路了。

我已经缩小了范围。 我想在尽可能接近标准C的情况下执行此操作(最好避免使用C11,Boost等。)理想情况下,我想完全不使用外部库来执行此操作。 如果必须使用它们,则不能使用运行时。

如果我知道从哪里开始,我完全有信心可以实现这一目标。 我不是C语言方面的专家,但是我是一个非常有能力的自学老师。 我正在寻找的是有关实现此库的建议,指针或想法。

目前的想法:我应该伪造或重新实现程序集,程序指针,返回指针等程序集的共享内存模型。叫我疯了...

相关文章: 线程实现 (第一个答案。)我正在寻找更多类似的东西。

同样相关: http : //www.avrfreaks.net/index.php? name=PNphpBB2& file= viewtopic&t= 54489

我曾经在Turbo C中仅使用setjmp和longjmp(当然还有一些用于堆积堆栈的asm)构建了一个线程子系统(合作)-这不是我要再做的事情。 可以做到,但是我认为不使用非标准C的愿望是不明智的。

我们使用pthreads(在Windows平台上使用pthread w32绰绰有余),并且在所有地方都支持所有这些出色的C11线程功能之前,您将获得尽可能多的跨平台支持。 我的建议是重新考虑您的厌恶-您正在为痛苦的世界做好准备。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM