Программа компилируеться, но выводит всегда одно и тоже число, и не выходит корректно
Код:
#include <iostream>
#include <functional>
#include <atomic>
#include <thread>
#include <chrono>
using namespace std;
class myObject{
public:
void setContent(int i){
this->cont = i;
return;
}
int getContent(){
return this->cont;
}
private:
int cont;
};
void myfunc(atomic<myObject*>* ptr,bool* isNeed){
auto target = ptr->load();
while (*isNeed){
for (int i=0;i<=100;i++){
target = ptr->load();
target->setContent(i%3*i/i%2);
ptr->store(target);
//this_thread::yield();
}
}
return;
}
void myfunc2(atomic<myObject*>* ptr,bool* isNeed){
auto target = ptr->load();
while(*isNeed){
target=ptr->load();
cout << "Content is:"<<target->getContent()<<"\n";
ptr->store(target);
}
return;
}
int main(){
cout << "Testing: \n";
atomic<myObject*>* target = new atomic<myObject*>();
target->store(new myObject);
bool isNeed1=true;
thread gen(myfunc,target,&isNeed1);gen.detach();
//gen.detach();
thread consume(myfunc2,target,&isNeed1);consume.detach();
//consume.detach();
this_thread::sleep_for(std::chrono::seconds(100));
isNeed1 = false;
this_thread::sleep_for(std::chrono::milliseconds(10));
delete target;
cout << "Trigger set to false;\n";
cin.get();
return 0;
}
Компилятор даже warning не выдает
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
В задании сказанно реализовать приложение, которое будет искать в базе данных элементы по заданным параметрамКоличество параметров и их названия...
Можно ли при помощи printf подсчитать количество букв в строке? если можно то каким способом или можно это сделать по другому?
Пишу консольную игру 2048 и столкнулся с проблемой отсутствия стандартных функций С++ считывания нажатий на стелки на клавиатуреgetch() не работает,...