Я начал создавать потоки около часа назад, и у меня возникли некоторые проблемы, когда режим отладки выполняет то, что я ожидал, а режим выпуска обнуляется.
Debug
g ++ -c -g -MMD -MP -MF build / Debug / GNU-Linux-x86 / foo.o.d -o build / Debug / GNU-Linux-x86 / foo.o foo.cpp
2222222222
Release
g ++ -c -O2 -MMD -MP -MF build / Release / GNU-Linux-x86 / foo.o.d -o build / Release / GNU-Linux-x86 / foo.o foo.cpp
Независимо от
RUN FAILED (значение выхода 1, общее время: 49 мс)
Класс
#include "foo.h"
#define NUMINSIDE 10
foo::foo()
{
inside = new int[NUMINSIDE];
}
void foo::workerFunc(int input)
{
for (int i = 0; i < NUMINSIDE; i++)
{
inside[i] += input;
}
}
void foo::operate()
{
std::cout << "Whatever" << std::endl;
boost::thread thA(boost::bind(&foo::workerFunc, this, 1));
boost::thread thB(boost::bind(&foo::workerFunc, this, 1));
thA.join();
thB.join();
for (int i = 0; i < NUMINSIDE; i++)
{
std::cout << this->inside[i] << std::endl;
}
}
основной
int main(int argc, char** argv)
{
foo* myFoo = new foo();
myFoo->operate();
return 0;
}