如何解决如何从其他线程中断std :: cinstd :: cin.getline执行
我有一些代码:
while(true) {
std::string message;
std::cin >> message; // break it
// send message
}
我想中断等待来自其他线程的std::cin
用户输入。
我该怎么做?预先感谢!
解决方法
std :: cin是一个不可中断的阻塞调用。
此线程在这里似乎有一些非阻塞性的选择: https://stackoverflow.com/a/40812107/2562287
如果您为std :: cin和布尔值(非互斥或原子的线程安全,最好是后者)使用了非阻塞替代方法,则可以在另一个线程上设置布尔值并在输入中读取布尔值线程,如果布尔值为true或false,则退出输入函数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。