c++ - std::thread::join 不返回
问题描述
我正在尝试对我的程序进行多线程处理,并尝试使用单独的线程来运行特定功能。但是,每当我在所述线程上调用 join() 函数时,它永远不会返回,并且程序将停止响应。我正在检查线程是否可以连接。
这是我所拥有的:
static std::thread receiveThread = std::thread(&Server::receiveData, this);
if (receiveThread.joinable())
{
receiveThread.join();
receiveThread = std::thread(&Server::receiveData, this);
}
解决方案
std::thread::join
仅在线程(由线程包装器拥有)返回后返回。如果有问题的线程永远不会返回,那么调用也std::thread::join
永远不会返回。
推荐阅读
- testing - 带有 require 模块的 Jest 全局变量
- css - 自动指定行高
- django - 无法使用 pytest-cov 和 pytest 运行覆盖范围
- gitlab-ci - GitLab CI - Symfony4 - 驱动程序中发生异常:SQLSTATE [HY000] [2002] 没有这样的文件或目录
- javascript - 这段用于验证输入字段的代码有什么问题
- python - 在 Rmarkdown 中使用 Python 时包不起作用
- mamp - MAMP Pro 6.1 - Apache 服务器未启动
- asp.net-core - Blazor WASM(仅限客户端)- 如何向不同的 API 发出 HTTP 请求?
- python - 在 Linux Web App 上安装 Weasyprint 和 Cairo 时遇到问题
- c# - 如何使用 LibUsbDotNet 与 RTL2832U 设备进行通信?