【发布时间】:2012-08-23 01:19:20
【问题描述】:
在我的代码中,我想创建一个类的一堆对象,然后给每个对象一个单独的线程,这样对象就可以彼此同时执行操作。
for (i = 0; i < ROBOTCOUNT; i++)
{
Robot* r = new Robot;
boost::thread t(r);
robotList.push_back(r);
}
我想做类似上面代码的事情。如果是这样,代码不会编译,但这是我想要的一般想法。有谁知道如何做我想做的事?
谢谢
【问题讨论】:
-
@KerrekSB 这是我创建对象的类。
-
不开玩笑,但它是如何定义的?!
-
你真的不应该这样做。在线程和您需要做的工作类型之间强制进行静态映射通常效率极低。这就像一家快餐店,每个收银台有一名员工,每个车站一名员工,每张可能需要擦拭的桌子一名员工,依此类推。拥有一个固定的员工池并根据当前需求为他们分配工作更有意义。
-
@KerrekSB 抱歉,我不确定我是否完全明白你的意思。它有一个不带参数的构造函数。
标签: c++ multithreading oop boost-thread