找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 3585|回复: 2

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

[复制链接]
发表于 2010-5-16 21:44:32 | 显示全部楼层 |阅读模式
有两个线程,分别为A和B
在主线程中,派生出了A线程和B线程
我想实现的时,A或者B有一个线程结束时,另一个线程也要结束
大家有什么想法吗?
 楼主| 发表于 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;
                        }

                }
但怎么查得到线程的状态呢?
发表于 2010-6-15 04:15:45 | 显示全部楼层
很多方法,shared context/mutex.., 或让A直接含有B的reference.
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-11-25 12:06 , Processed in 0.013536 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表