我的问题是,Boost.Fiber是否准备生产,现在有c个替代品有更好的文档和示例吗?有人提到轻量级线程,但我似乎找不到引用它.最后一个问题是,为什么C标准不包括光纤?
我对此感兴趣的原因是因为我有一个实时更新,其中值更改可以影响(产生)数百个/小时但尴尬的并行计算. C线程模型不能很好地工作,imo.请不要使用GPU,因为目前需要太长时间才能将信息传输到GPU.
我意识到Erlang远不止这一切,所以请不要在一般情况下教Erlang对C.
解决方法
C 17还希望通过使用提出的await关键字,以基于可恢复功能的方式获得像M:N线程模型一样的WinRT.微软在他们的编译器中实现了支持,除了用于期货的魔术记忆分配技巧之外,它看起来非常有希望.相关的N文章是N4134(http://www.open-std.org/Jtc1/sc22/wg21/docs/papers/2014/n4134.pdf),正如你将看到的那样,如果被接受,即使语法有点钝,这个可恢复函数的形式确实会提供Erlang类型的可扩展性(嘿,它是C,它的语法何时是直接的!).
当然,如果现在需要一个便携式解决方案,要么使用ASIO(请注意:它是脆弱的),要么使用ASIO线程,要么使用ASIO线程进行无栈协同路由,而是使用类实例作为执行状态,这是非常相似的,或者无论如何使用Boost.Fiber.如果你只需要Windows,我会自己推出微软的专有扩展,除非放弃WinRT,否则他们不同于放弃它们
编辑:Boost.Fiber的作者告诉我,截至2015年1月,社区评论的推荐变化已经完成,除了文档改进,Fiber被认为可以纳入官方Boost.如果确实如此,那么在编译器中出现最终可恢复功能的官方C 17语言支持之前,Fiber可能是最好的解决方案.