#include<iostream>
#include<boost/thread.hpp>
#include<boost/chrono.hpp>
using namespace std;

void parallel_write(int  num,int *a) {
    cout<<"thread num="<< num<< endl;
     a[num]=num;
//    while(true) {
//         boost::this_thread::sleep_for(boost::chrono::milliseconds(30));
//    }
 }


void parallel_read( int num, int *a) {
      cout<< a[num] <<endl;
}

 
int main(void) {
         boost::thread_group tg;
         int n;
         cout<<"dose n:";
         cin >>n;
         int *a=new int[n];
         for(int i=0;i<n;i++) {
            tg.create_thread(boost::bind(parallel_write,i,a));
         }
         tg.join_all();
         for (int i=0;i<n;i++) {
              tg.create_thread(boost::bind(parallel_read,i,a));
         }
         for(int i=0;i<n;i++) {
             cout<< a[i]<<endl;
         }
}

