bobos12@126.com 发表于 2010-5-16 21:44:32

请教,如何实现两个线程相互取消

有两个线程,分别为A和B
在主线程中,派生出了A线程和B线程
我想实现的时,A或者B有一个线程结束时,另一个线程也要结束
大家有什么想法吗?

bobos12@126.com 发表于 2010-5-16 22:21:15

我是这样实现的
        int t_id_run=ACE_Thread_Manager::instance()->spawn(run_recv_file,(void*)(recvfile_handler_));
                int t_id_control=ACE_Thread_Manager::instance()->spawn(run_control,(void*)(recvfile_handler_));
                //ACE_Thread_Manager::instance()->wait();
                while(1)
                {
                        if(线程t_id_run结束)
                        {
                                ACE_Thread_Manager::instance()->cancel(t_id_control);
                                break;
                        }
                        if(线程t_id_control结束)
                        {
                                ACE_Thread_Manager::instance()->cancel(t_id_run);
                                break;
                        }

                }
但怎么查得到线程的状态呢?

steven99ca 发表于 2010-6-15 04:15:45

很多方法,shared context/mutex.., 或让A直接含有B的reference.
页: [1]
查看完整版本: 请教,如何实现两个线程相互取消