我有客户端可以在2个线程上工作。一个是发送数据,另一个是接收数据。在发送数据时,我有std::getline(std::cin,string)
。现在在这个线程中,我有无限循环,如果第二个线程结束或者如果用户放入EXIT命令,那么所有工作都很好,当第二个线程结束并且无限循环结束时,由于std::getline
,程序仍然等待按下按钮。
现在问题:getline和线程问题
如何发送数据到getline到“假”按钮,所以我不必按按钮结束程序?
第二个问题我有服务器为每个客户端运行另一个线程和服务器的主线程接受新的连接,它也工作得很好。客户存储在std::list
。每个线程都有一个从客户端接收数据的循环。如果客户端诅咒他太多,他正从服务器踢,但这是当用户做这个问题,我只是从infite循环中断,线程正在结束,但我也想从列表中删除客户端,所以在程序的主线程中,我必须检查每次如果任何线程返回正确的值,并且它是否从列表中删除了元素?
您正在使用哪种多线程系统?您可能会使用特定的库函数中断或终止其他线程。 –
Windows,我知道我可以杀死线程,但我宁愿结束它,并安全擦除用户 – Darek