我的问题是这样。
最近在做视频采集,采用多线程,单个线程负责对一个摄像头进行采集并通过udpSocket将视频流上传到上位机。
线程的结构大体如此:
thread::run()
{
while(!stopped)
{
doSomething();
}
}
在主程序中,由于不知道上位机会要求几个视频流,所以线程采用动态创建的方式。当上位机发送信号后,终端就建立一个采集线程,根据所给的参数打开设备文件,采集并上传数据。大体如此:
client::new(...)
{
Thread *thread = new Thread();
thread->start();
}
问题是,如果我想要在接到上位机的一些其他信号时,例如暂时停止线程,或者杀死这个线程,但是我已经无法访问这个线程,怎么办呢?