This is known as the "readers-writers dilemma" in operating systems. A single set of parameters is shared by several processes. When a writer is ready, it goes to work. Only one writer may work at any given time. No other process can read what a process is writing. When that writer finishes, another takes its place and so on. The writer-reader problem arises when there are multiple sets of parameters (multiple copies of the same program). Many operating systems solve this problem by using threads. A thread is a sequence of instructions that can run independently of others. Sometimes threads are referred to as processes but they do not have to be. Each thread has its own memory space and can write and read whatever it wants. Threads can also share memory spaces or even become joined together into a single process. Linux and Windows are two common operating systems that use threads to solve the writer-reader problem. There you have it! The writer-reader problem arises when multiple copies of a program want to use the same data at the same time. Solutions include threads and locks.