c++ - 休眠 X 毫秒或线程信号?

标签 c++ pthreads

除非线程告诉我醒来,否则我想睡 X 时间。在下面的示例中,我想休眠 10 毫秒(1/100 秒)或直到 foo 有 2000 个项目。以先到者为准。我该怎么做呢?我编了函数

主线程:

pthread_sleep_fn(10000, some_cond_var)  
printf("%d items has been processed", foo.items.count())

主题:

while(true)
    auto result = read_data()
    foo.items.add(result)
    if(foo.items.count()>2000)
        pthread_wake_up(some_cond_var)

最佳答案

要等待超时条件,请使用 pthread_cond_timedwait .

关于c++ - 休眠 X 毫秒或线程信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35841403/

相关文章:

C++:使用指向大型静态数组的指针安全地初始化类

C++ std::string 构造函数

c++ - 保证在 pthread_wait_signal 之前执行 pthread_cond_wait

c - C 中的 Boss Worker Pthreads Web 服务器 - 如果发送的请求多于线程数,服务器会崩溃

c - Pthread信号丢失/条件缓慢?

c++ - 为什么 GCC 4.8.2 不传播 'unused but set' 优化?

c++ - vector (push_back); g++-O2;分段故障

c++ - Boost bimap 无法使用 gcc 10、c++20 进行编译。寻找临时修复

c++ - 取消 pthread_cond_wait() 挂起与 PRIO_INHERIT 互斥锁

algorithm - 关于任务并行化的问题