【发布时间】:2015-08-27 22:46:32
【问题描述】:
我有一个迭代时间的算法,这意味着它与时间步长一致。它使用两个主要功能,因为不共享数据而很容易实现多线程。每次迭代都会调用这两个函数。实际上我在每次迭代时都创建了两个新线程,但它并没有改善时间,所以是否可以只创建一次线程,在开始迭代之前,然后 func1 总是在线程 1 中运行,而 func2 在线程 2 中运行每一步?所以我会节省线程处理等的时间......
谢谢
巴勃罗
【问题讨论】:
-
你能在你的问题中显示一个代码示例吗?
-
不太清楚你在问什么。是的,您可以一次创建 2 个线程,并让它们分别运行一个函数。
-
@Pablo:请记住,每次迭代启动和停止线程会花费大量时间。开销和大量上下文切换是您的敌人。尝试在迭代开始之前启动一堆线程,让你的线程连续执行一堆任务。但正如 Jason 已经问过的,一些代码会更有帮助。
标签: c++ multithreading