//#include<pthread.h> #include #include #include #include
using namespace std; std::mutex mtx; //static long long total = 0; //pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER; //long long i = 100;; atomic_llong i {100}; int func(int){ while(1) { if(0 == i%2) { //pthread_mutex_lock(&m); lock_guardstd::mutexlck(mtx); i–; cout<<“a\n”; //pthread_mutex_unlock(&m); } if(i<=0) break; } cout<<“thread1 exit\n”; return 0; }
int func2(int){ while(1) { if(1 == i%2) { //pthread_mutex_lock(&m); lock_guardstd::mutexlck(mtx); i–; cout<<“b\n”; //pthread_mutex_unlock(&m); } if(i<=0) break; } cout<<“thread2 exit\n”; return 0; }
int main(){ thread t1(func, 0); thread t2(func2, 0);
t1.join(); t2.join(); //cout<<total<<endl; return 0;}