每秒调用一个方法,然后在C ++中休眠几秒钟

时间:2013-12-09 20:43:14

标签: c++ multithreading mutex

我最近开始在C ++中使用多线程。目前我在这里有一个例子的三个线程..

以下for循环将启动三个独立于彼此的线程,这三个线程将在三个线程中相互独立地调用Scanner类。

uint64_t num_scanners = 3; // number of threads
for (uint32_t i = 0; i < num_scanners; i++) {
    m_scanners.push_back(boost::shared_ptr<Scanner>(new Scanner(i, num_scanners)));
}

在此之后,我试图让下面的事情发挥作用,但不知怎的,我无法让它发挥作用 -

如果Thread1正在使用1386621020 second,那么Thread2应该适用于1386621021 second,然后Thread3应该适用于1386621022 second

此后Thread1将在1386621023 second上工作(这意味着它在第一次执行第一次任务后将睡眠2秒钟,因为第一次Thread1正在处理1386621020)和{ {1}}将在Thread2上工作,1386621024 second将在Thread3上工作,并继续这样做。

下面是我的Scanner类,它在每个线程中运行并调用1386621025 second方法。我需要每隔一秒钟调用DoScan方法,如上所述。

DoScan

我不是在寻找完全准确的线程睡眠算法。这里的近似睡眠时间算法应该没问题......

0 个答案:

没有答案