Я пытаюсь выполнить реализацию алгоритма dekker для домашней работы, я понимаю концепцию, но я не могу выполнять два потока параллельно с помощью C++ 0x.Запуск потоков параллельно в C++
#include <thread>
#include <iostream>
using namespace std;
class Homework2 {
public:
void run() {
try {
thread c1(&Homework2::output_one, this);
thread c2(&Homework2::output_two, this);
} catch(int e) {
cout << e << endl;
}
}
void output_one() {
//cout << "output one" << endl;
}
void output_two() {
//cout << "output two" << endl;
}
};
int main() {
try {
Homework2 p2;
p2.run();
} catch(int e) {
cout << e << endl;
}
return 0;
}
Моя проблема заключается в том, что нити не будут возвращать эту ошибку:
terminate called without an active exception
Aborted
Единственный путь к успеху до сих пор для меня было добавление c1.join(); c2.join(); или .detach(); проблема в том, что join(); будет ждать окончания потоков и отделить(); ... хорошо Im не уверен, что отсоединяет, потому что нет ошибки, но также нет вывода, я думаю, что он оставляет потоки самостоятельно ...
Итак, все это сказать: Кто-нибудь знает, как я могу это сделать это оба потока для параллельного и не секвенциального? Помощь должна быть оценена!
Thanks.-
P.S: вот что я могу сделать для сборки:
g++ -o output/Practica2.out main.cpp -pthread -std=c++11
здесь является то, что я могу сделать для сборки: г ++ -o выход/Practica2.out main.cpp -pthread -std = C++ 11 – RicardoE
Дон» t добавьте дополнительную информацию в комментарии. Вместо этого, [править исходный вопрос] (http://stackoverflow.com/posts/21744657/edit), чтобы включить (правильно отформатированную) информацию. –
: okay:: SI отредактирует сообщение ... – RicardoE