void writer(int id) { rwLock.writeLock(); int i = rand() % buffer.size(); int data = rand(); buffer[i] = data; { lock_guard<mutex> lock(outputLock); cout << "writer " << id << " writes buffer[" << i << "] = " << data << endl; } rwLock.writeUnLock(); }