Не работает многопоточный код в Kubuntu
Изучаю C++ и дошел до многопоточного программирования. Столкнулся с такой проблемой, что не могу скомпилировать код в CodeBlocks, хотя в онлайн компиляторах он компилируется и результат получается нужный. Работаю на Kubuntu. Что это за проблема и как ее можно решить? Ниже приведу код программы:
#include <iostream>
#include <cstdlib>
#include <string>
#include <thread>
#include <chrono>
#include <mutex>
using namespace std;
mutex m;
//Функция для создания потоков
void mythread(string name, int time, int steps)
{
for(int k=1;k<=steps;k++)
{
//Временная задержка в выполнении команд
this_thread::sleep_for(chrono::seconds(time));
//Блокировка доступа к ресурсу
m.lock();
//Отображение сообщения в консоли
cout << "Поток " << name << ":\tсообщение " << k << endl;
//Разблокировка ресурса
m.unlock();
}
}
int main()
{
int n=5;//Кол-во циклов в потоках
cout << "Запускаются потоки...\n";
//Первый дочерний поток
thread A(mythread, "Alpha", 4,n);
//Второй дочерний поток
thread B(mythread, "Bravo", 3,n);
//Вызов функции в главном потоке
mythread("Main", 2,n);
//Ожидание завершения первого дочернего потока
if(A.joinable())
{
A.join();
}
//Второго
if(B.joinable())
{
B.join();
}
cout << "Выполнение программы завершенно...\n";
return 0;
}