A shared resource synchronization amongst many processes trying to acquire it is a major source of complexity in uniprocessor and multiprocessor systems. The common way of dealing with such complexity is to exclusively acquire the shared resource by a lock, work on it and then let go after the resource is no longer needed. A reader-writer lock paradigm is unique in a way that it allows multiple readers to share the resources amongst them as readers are not changing the state of the shared resource or allow a single writer exclusively to write into/or change the shared resource state from A–B. A reader-writer problem is a challenging topic and deserves its own identity. There are many reader-writer algorithms that try to solve and improve the efficiency of this synchronization. With great improvements in computer hardware and subsequently the synchronization methods in the last 2 decades, we attempt to bring all reader-writer locks together. The paper would first examine a general lock and later move on to different kinds of reader-writer locks in the literature to the best of our knowledge.