struct val { pthread_rwlock_t rwlock; int nval; } put ={
PTHREAD_RWLOCK_INITIALIZER, 0 };
void* thread_read(void*arg) { int n =(*(int*)arg); pthread_rwlock_rdlock(&put.rwlock); printf("%d:---%d\n", n, put.nval); pthread_rwlock_unlock(&put.rwlock); }
void* thread_write(void*arg) { int n =(*(int*)arg); pthread_rwlock_wrlock(&put.rwlock);
put.nval++; pthread_rwlock_unlock(&put.rwlock); }
int main() { int count_read[READERS]; int count_write[WRITERS]; pthread_t tid_read[READERS]; pthread_t tid_write[WRITERS];