相关疑难解决方法(0)

实现Go goroutines或Go频道的C++库?

我正在使用一个中型C++代码库,它目前完全是单线程的.然而,现在是追求并发和并行性以获得性能提升的时候了.我对Google的Go编程语言的并发模型非常感兴趣,它具有非常轻量级的goroutine和一个通信通道系统.

遗憾的是,由于各种完全正确的原因,该项目需要保留在C++中.所以我的问题是:是否有一个C++库近似于并行的Go范例?具体来说,是否有可用于C++的goroutine或go渠道的近似值?我的后备计划只是使用boost :: thread.

有问题的应用程序是财务预测领域的长期专有模拟.它通常受CPU限制,但在新数据可用时也会在IO上被阻止.所涉及的许多计算不依赖于先前的结果,并且可以相当容易地并行运行.能够在分布式环境中运行应用程序是一个长期目标,但不是需要立即解决的目标.

c++ concurrency go

26
推荐指数
2
解决办法
8554
查看次数

在 C++ 中是否有安全的方法来使用 setjmp() 和 longjmp() ?

我的印象是,在 C++ 中使用setjmp()andlongjmp()几乎肯定会弄乱堆栈,因为这些函数不会像异常那样执行展开。然而,此 MSDN 页面表明可以告诉 Microsoft 实现调用本地对象的析构函数,这意味着谨慎使用这些函数可能是安全的。

setjmp()在使用C++时是否有一种可移植的方法来确保程序的正确性longjmp()?C++ 中的最佳实践表明,异常最好不要用于流程控制,但在需要高度不寻常的流程(例如协程和闭包)的情况下,是否总是最好使用异常来代替这些函数?

c++ exception coroutine

5
推荐指数
1
解决办法
1173
查看次数

python在C/C++中的yield功能?

我刚刚了解了python中的yield关键字 - 非常令人印象深刻且非常有用.

在C和C++语言中是否有任何等价物?

c c++ python yield

5
推荐指数
1
解决办法
1479
查看次数

Linux open(path,O_NONBLOCK | O_RDONLY | O_DIRECT)阻止pread on file

我想在我的程序中读取异步磁盘.

服务器上有很多硬盘,如果一个硬盘很慢,程序就会阻塞.我想打电话异步.

如果我打电话:

打开(路径,O_NONBLOCK | O_RDONLY | O_DIRECT)

然后pread,然后pread使用最多8000微秒,但阻止我的程序.

是否可以在没有线程池的情况下启用异步磁盘读取?

linux posix asynchronous file aio

2
推荐指数
1
解决办法
3299
查看次数

标签 统计

c++ ×3

aio ×1

asynchronous ×1

c ×1

concurrency ×1

coroutine ×1

exception ×1

file ×1

go ×1

linux ×1

posix ×1

python ×1

yield ×1