void reader(int id) { rwLock.readLock(); int i = rand() % buffer.size(); int data = buffer[i]; { lock_guard<mutex> lock(outputLock); cout << "reader " << id << " reads buffer[" << i << "] = " << data << endl; } rwLock.readUnLock(); }