c++ - 为什么 std::thread::join 在这里出现段错误?
问题描述
好的,我在 10 分钟前遇到了这个问题。下面是一个代码片段,SEGFAULTs 就在join()
语句中,没有任何特殊原因。就我而言,代码是正确的(我在大型服务器应用程序中遇到了同样的问题,所以我从互联网上复制粘贴了这个工作片段):
#include <iostream>
#include <thread>
int main() {
std::thread t([]() {
std::cout << __LINE__ << std::endl;
std::this_thread::sleep_for(std::chrono::seconds(10));
std::cout << __LINE__ << std::endl;
});
std::cout << __LINE__ << std::endl;
std::this_thread::sleep_for(std::chrono::seconds(1));
t.join();
std::cout << __LINE__ << std::endl;
return 0;
}
这里到底有什么问题?编译...
u@p:~$ g++ --version
g++ (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
...经过...
g++ main.cpp -lpthread
解决方案
推荐阅读
- ios - 迅速如何从谷歌登录中检索用户信息?
- javascript - D3 - 分发
在 SVG + SVG 内垂直高度等于其中的子项 - flutter - Flutter 如何创建 3 层堆栈
- jquery - jquery promises 我做错了什么
- javascript - 单击 youtube 评论中的时间戳会将您带到页面顶部
- python - Conda 和 Pip 不能互换使用是什么意思?
- ajax - 插入语句后在 AJAX JSP 中显示成功或失败警报
- python - 无法使用 matplotlib 绘制图表
- c++ - 从节点向其邻居发送消息
- python - 通过烧瓶 API 将上传的文件流式传输到 MinIO 存储