A lot of where I saw the synchronization of threads. Usually it is associated with a certain shared resource. But I didn’t stumble upon a nuance. How to make it so that if there is not a single synchronization write operation, as it were, it would not exist at all, that is, a heap of threads can read the object at once. But only when the recording begins, everyone stops waiting for the final of the recording, just like the recording is waiting for the final of the reading.
For example, in java the synchronized block solves this task partially. When synchronized read() it will block not only synchronized write() but also all others to the read() call, right? Is it possible to avoid this and make it possible to cause reading as many times as necessary until the recording is called?
So reading is a lot of threads, writing is one?