#include <iostream>
#include <vector>
#include <algorithm>
#include <cstdlib>
#include <cstdio>
#include <pthread.h>
#include <unistd.h>
//using namespace std;
pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER;
pthread_cond_t cond=PTHREAD_COND_INITIALIZER;
int data;
void *thread_func(void *argv){
while(1){
pthread_mutex_lock(&mutex);
pthread_cond_wait(&cond,&mutex);
std::cout<<"we got "<<data<<std::endl;
pthread_mutex_unlock(&mutex);
}
return 0;
}
int main(int argc, char** argv){
pthread_t tid;
pthread_create(&tid,NULL,thread_func,NULL);
sleep(1);
for(int i=1;i<=10;i++){
pthread_mutex_lock(&mutex);
data = i;
pthread_cond_signal(&cond);
pthread_mutex_unlock(&mutex);
sleep(1);
}
std::cout<<"main thread done"<<std::endl;
pthread_join(tid,NULL);
return 0;
}