I'm reading operating system and I came across several problems for inter-process communication. These can be solved by using monitor concepts which java provide via synchronized
keyword.
I wish to know how synchronized
keyword have been implemented? I tried to look at the source but I couldn't able to find it. Are synchronized
are using system calls like down
up
( which semaphore uses basically) to monitor the locks?
Does JVM help in this process?
I'm a novice in Java, I wish to know how things works before I go into thread concepts in java.
Thanks in advance.
How synchronized is implemented is not defined, only how it works.
In many JVMs, what it does is quite complicated to optimise its behaviour (for example it tries to avoid making system calls as these are relatively slow) For example the JIT can combine or eliminate locking with the synchronized keyword if it determines this can be done.