gpt4 book ai didi

c - 使用条件变量停止运行 pthreads 的最佳方法

转载 作者:太空宇宙 更新时间:2023-11-04 04:56:45 25 4
gpt4 key购买 nike

我在我的 C 代码中使用 pthreads。我在主例程中创建并启动了一个线程 (THREAD_1),从 THREAD_1 开始,我调用一个例程再次创建两个新线程(THREAD_2、THREAD_3)。所有三个线程都将在条件循环中以毫秒 sleep 的方式并行运行。满足特定条件后,我想停止/退出两个线程(THREAD_2、THREAD_3),然后是 THREAD_1。执行此操作的最佳方法是什么?

最佳答案

            while(true){
apr_thread_mutex_lock(mySharedObject->getMutex());
while (mySharedObject->getMessagesReady() == 0 && !mySharedObject->getEndThread()) {
apr_thread_cond_wait(mySharedObject->getCond(), mySharedObject->getMutex());
}
if (mySharedObject->getEndThread()){
apr_thread_mutex_unlock(mySharedObject->getMutex());
break;
}

apr_thread_mutex_unlock(mySharedObject->getMutex());

if (mySharedObject->getMessagesReady()>0){
myActiveProducer->send();
}

}

这就是我实现它的方式。有什么问题吗??

关于c - 使用条件变量停止运行 pthreads 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6424172/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com