#include
#include
#include
#include
using namespace std;
mutex myMutex;
condition_variable cv;
bool flag = true;
void threadFunction1 ()
{
for (int i = 0; i<= 50 ;++i)
{
unique_lock uqLock (myMutex);
cv.wait (uqLock,[](){return flag==true; });
cout<< 2* i<< endl;
flag = false;
cv.notify_one () ;
uqLock.unlock ();
}
}
void threadFunction2 ()
{
for (int i = 0; i< 50;++i)
{
unique_lock uqLock (myMutex);
cv.wait(uqLock,[]() { return flag ==false; });
cout << 2 * i + 1 <
flag = true;
cv.notify_one();
uqLock.unlock ();
}
}
int main ()
{
thread t1 (threadFunction1);
thread t2 (threadFunction2);
t1.join ();
t2.join();
}