- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
2022 年更新
C++ 17 和 20 现在在标准库中内置了对多线程的支持。我建议使用这些而不是使用 Linux 特定的 pthread 库。
原始问题
我编写了一个程序来测试 64 位 kubuntu linux 版本 13.04 上的线程。实际上是我从正在编写测试程序的其他人那里窃取了代码。
#include <cstdlib>
#include <iostream>
#include <thread>
void task1(const std::string msg)
{
std::cout << "task1 says: " << msg << std::endl;
}
int main(int argc, char **argv)
{
std::thread t1(task1, "Hello");
t1.join();
return EXIT_SUCCESS;
}
我编译使用:
g++ -pthread -std=c++11 -c main.cpp
g++ main.o -o main.out
然后跑:
./main.out
顺便说一句,当我输入“ls -l”时,main.out 与所有可执行文件一样以绿色文本显示,但名称末尾也有一个星号。这是为什么呢?
回到手头的问题:我跑main.out的时候,出现了一个错误,里面说:
terminate called after throwing an instance of 'std::system_error'
what(): Operation not permitted
Aborted (core dumped)
有人知道如何解决这个问题吗?
最佳答案
您没有正确链接 pthread,请尝试以下命令(注意:顺序很重要)
g++ main.cpp -o main.out -pthread -std=c++11
或
用两个命令来做
g++ -c main.cpp -pthread -std=c++11 // generate target object file
g++ main.o -o main.out -pthread -std=c++11 // link to target binary
关于c++ - 什么导致运行时错误消息:std::system_error - 不允许操作,包括多线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17274032/
我正在尝试编写一个多线程记录器,当我测试要写出的行队列是否为空时,出现带有无效参数的std::system_error。构造unique_lock时会发生这种情况。如果我通过std::try_to_l
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Why does this simple std::thread example not work? 代码:
这个问题在这里已经有了答案: Why is locking a std::mutex twice 'Undefined Behaviour'? (2 个答案) 关闭 7 年前。 这是代码 mutex
C++11 引入了包含处理错误代码的通用系统的 header 。一个 std::error_code是一个包含 int 的元组、错误代码和对 std::error_category 的引用,它定义了错
我正在尝试运行我的程序,但在几次运行中我遇到了一个错误: terminate called after throwing an instance of 'std::system_error' wh
我的线程代码中存在异常问题。基本上这是一个生产者-消费者问题,不同之处在于消费者必须先清空自己的队列,然后再从主队列消费,此外,根据值,他们将数字添加到另一个消费者队列或对其进行处理。 代码按预期工作
当我运行我的代码时: nb workers = 12 I'm i : 0 HELLO I'm func1 BYE I'm func2 terminate called after throwing a
最近我开始研究 Grpc。在 Grpc C++ 编译中出现以下错误,不确定是什么导致了这个问题。 我不是 C++ 背景,任何帮助对我来说都会非常有用。 [HOSTLD] 链接/home/test/gr
我开发了一种使用推力 的算法。我的办公室计算机有一张支持 CUDA 的卡,其架构为: --- General information about Device 0 Name: Quadro 2000
我有这个抛出异常的代码(非常类似于 what is suggested here): int accept4(int sockfd, sockaddr *addr, socklen_t *addrle
我在具有 2.1 计算能力的 Nvidia 卡上使用 Thrust 运行蒙特卡洛模拟。如果我尝试一次 transform_reduce 整个 device_vector,我会收到以下错误。这不是耗尽设
中定义的异常(例如 std::logic_error 、 std::runtime_error 及其子类,例如 std::system_error )具有需要字符串参数的构造函数,例如: domai
我正在开发一个系统,该系统旨在使用名为 error_code、error_condition 和 error_category 的类——一个新的方案std:在 C++11 中,尽管目前我实际上正在使用
我看了一篇深思熟虑的series of blog posts关于新 C++11 中的 header 。它说标题定义了 error_code表示操作(例如系统调用)返回的特定错误值的类。它说标题定义了
这个问题在这里已经有了答案: What are the correct link options to use std::thread in GCC under linux? (5 个回答) 关闭9年
我正在使用 tensorflow 训练 resNet50,使用具有以下属性的共享服务器: Ubuntu 16.04 3 gtx 1080 gpu tensorflow 1.3 python 2.7 但
我在Android应用程序中使用boost inide并获得随机SIGABRT: "terminating with uncaught exception of type boost::wra
我使用从 std::system_error 继承的类进行错误处理,我想控制调用 what() 时返回的内容。原因:标准(C++11 和 C++1y CD 草案 - N3690,下面的 § 引用是后者
如果我调用通过 GetLastError 报告错误的 Win32 函数,例如 RegisterClassEx ,如何为该错误抛出 std::system_error ? 最佳答案 检查 GetLast
我正在尝试使用 system_error 工具来处理我的库中的错误。我将简要讨论该库的结构,以防您发现它对您有所帮助:该库的 namespace 称为 commons,在此之下我还有另一个 names
我是一名优秀的程序员,十分优秀!