tutorial threads thread libreria ejemplo algorithms c++ multithreading c++11 system-error

threads - thread c++ ejemplo



C++ Threads, std:: system_error-¿operación no permitida? (1)

Así que escribí un programa para probar los hilos en 64 bit kubuntu linux, versión 13.04. En realidad, robé el código a otra persona que estaba escribiendo un programa de prueba.

#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; }

Compilé usando:

g++ -pthread -std=c++11 -c main.cpp g++ main.o -o main.out

Luego corrió:

./main.out

Como un aparte, cuando ''ls -l'', main.out aparece en texto verde como todos los archivos ejecutables, pero también tiene un asterisco al final de su nombre. ¿Por qué es esto?

Volviendo al problema en cuestión: cuando ejecuté main.out, apareció un error que decía:

terminate called after throwing an instance of ''std::system_error'' what(): Operation not permitted Aborted (core dumped)

Alguien alguna idea sobre cómo solucionar esto?


Usted no está enlazando pthread correctamente, intente debajo del comando (nota: el orden es importante)

g++ main.cpp -o main.out -pthread -std=c++11

O

Hazlo con dos comandos

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