C ++ 11多线程编程中的嵌套线程

肖恩

首先,我创建四个线程,每个线程将调用一个GPU函数。但是,在这四个中的每个中,我还想创建两个线程。一种是从磁盘读取数据,另一种是进行计算。我不确定是否可以在C ++中创建嵌套线程。我认为这不是一个整洁的代码。我可以用另一种方法解决问题吗?

用户名

通常,从正在运行的线程创建新线程应该没有问题。就像您认为这不是最佳解决方案一样,因为创建/销毁线程通常并不便宜,并且线程越多,您拥有的上下文切换就越多,这也可能会降低性能。

因此,您可以创建一个具有给定线程数的线程池,并使该线程池线程能够从磁盘读取数据并进行计算。您将避免大量创建和销毁线程。

如果您还经常创建/销毁正在调用GPU函数的线程,则可以为调用GPU函数的线程创建两个线程池,并为从磁盘和计算中读取的线程创建一个线程池。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章