我有一个主线程,在那个线程中我开始一个新线程。(子线程)。该子线程打开一个服务器套接字并开始侦听连接。我希望该线程在主线程从外部获取消息时停止执行并关闭它已初始化的任何内容(如套接字)(不关心从哪里获取消息)。我应该如何停止线程并关闭所有连接是我想要的。
我应该使用共享变量吗?这样当主线程收到消息时它应该修改它并且子线程应该不断检查该共享变量中的更改?
我应该如何实施?一些有用的链接可能会有所帮助或示例代码?
我尝试过如下:在主线程中我声明了一个变量
flag=0;
当主线程收到消息时,它设置
flag = 1 ;
并且线程按如下方式侦听更改:
void ()run{
while(true){
if(flag==1){
break;
}
sock1 = Ssocket.accept();
}
但是上面的代码根本不起作用。我该怎么做?