In C++ how i can write two parallel threads which will work one by one.For example in below code it need to print 0 t 100 sequentially.In below code the numbers are printing ,but all are not sequential.I need to print like 1,2,3,4,5,6.....99.If any body know , try to add with sample code also.
    #pragma once
#include <mutex>
#include <iostream>
#include <vector>
#include <thread>
#include <condition_variable>
using namespace std;
class CuncurrentThread
{
public:
    mutex mtx;
    condition_variable cv;
    static bool ready;
    static bool processed;
    void procThread1()
    {
        for (int i = 0; i < 100; i += 2)
        {
            unique_lock<mutex> lk(mtx);
            cv.notify_one();
            if(lk.owns_lock())
                cv.wait(lk);
            cout << "procThread1 : " << i << "\n";
            lk.unlock();
            cv.notify_one();
        }
    };
    void procThread2()
    {
        for (int i = 1; i < 100; i += 2)
        {
            unique_lock<mutex> lk(mtx);
            cv.notify_one();
            if (lk.owns_lock())
                cv.wait(lk);
            cout << "procThread2 : " << i << "\n";
            lk.unlock();
            cv.notify_one();
        }
    };
    static void ThreadDriver(CuncurrentThread* thr)
    {
        vector<thread> threads;
        threads.push_back(thread(&CuncurrentThread::procThread1, thr));
        threads.push_back(thread(&CuncurrentThread::procThread2, thr));
        for (auto& thread : threads) 
            thread.join();
    };
};
bool CuncurrentThread::ready = false;
int main()
{
    CuncurrentThread tr;
    CuncurrentThread::ThreadDriver(&tr);
    
}