【发布时间】:2011-05-26 03:54:32
【问题描述】:
我正在使用目前完全是单线程的中型 C++ 代码库。然而,现在是追求并发性和并行性以提高性能的时候了。我对 Google Go 编程语言的并发模型非常感兴趣,它具有非常轻量级的 goroutine 和通信通道系统。
遗憾的是,出于各种完全正当的原因,该项目需要保留在 C++ 中。所以我的问题是:是否有一个 C++ 库可以近似于 Go 的并行范式?具体来说,是否有可用于 C++ 的 goroutine 或 go 通道的近似值?我的后备计划只是使用 boost::thread。
有问题的应用程序是针对财务预测领域的长期专有模拟。它通常受 CPU 限制,但当新数据可用时也会在 IO 上被阻塞。所涉及的许多计算不依赖于先前的结果,并且可以相当容易地并行运行。能够在分布式环境中运行应用程序是一项长期目标,但不是需要立即解决的目标。
【问题讨论】:
-
您确实需要更具体地了解您的项目。不同类型的应用程序将受益(或不受益)不同的线程模型。是协程(基本上是协程)或线程;也许事件模型更适合,或者是各种参与者库之一。 描述您的应用程序。
-
我添加了一段描述应用程序的段落。
标签: c++ concurrency go