#include #include using namespace boost::fibers; using namespace std; using namespace std::literals; volatile int a = 0, b = 0; void suma() { while (true) { ++a; ++b; boost::this_fiber::yield(); } } void resta() { while (true) { --a; --b; boost::this_fiber::yield(); } } void muestra() { while (true) { cout << "a = " << a << "\t b = " << b << endl; this_thread::sleep_for(250ms); boost::this_fiber::yield(); } } int main() { fiber t[3] = {fiber(suma), fiber(resta), fiber(muestra)}; for (auto &i: t) i.join(); }