C++ getline和线程的问题
我有一个在两个线程上工作的客户端。一个正在发送数据,另一个正在接收数据。在发送数据时,我有C++ getline和线程的问题,c++,multithreading,client,getline,C++,Multithreading,Client,Getline,我有一个在两个线程上工作的客户端。一个正在发送数据,另一个正在接收数据。在发送数据时,我有std::getline(std::cin,string)。现在,在这个线程中,我有无限循环,当第二个线程结束或者用户发出退出命令时,它就结束了。除了当第二个线程结束,无限循环结束时,程序仍然等待按下按钮,因为std::getline 现在提出问题: 我如何将数据发送到getline以“伪造”按下按钮,这样我就不必按下按钮来结束程序 第二个问题我有一个服务器,它为每个客户机运行另一个线程,服务器的主线程接受
std::getline(std::cin,string)
。现在,在这个线程中,我有无限循环,当第二个线程结束或者用户发出退出命令时,它就结束了。除了当第二个线程结束,无限循环结束时,程序仍然等待按下按钮,因为std::getline
现在提出问题: 我如何将数据发送到getline以“伪造”按下按钮,这样我就不必按下按钮来结束程序
第二个问题我有一个服务器,它为每个客户机运行另一个线程,服务器的主线程接受新的连接,它也工作得很好。客户端存储在
std::list
中。每个线程都有inifnite循环,它从客户端接收数据。如果客户端诅咒太多,他会从服务器上被踢出,但当用户这样做时,问题是我刚从infite循环中断,线程正在结束,但我也想从列表中删除客户端,所以在程序的主线程中,我必须检查每次线程是否返回了正确的值,如果它确实从列表中删除了元素?您使用的是哪个多线程系统?您可以使用特定的库函数中断或终止其他线程。Windows,我知道我可以只终止线程,但我宁愿终止它并安全地删除用户