I know how volatile works but question about how especially. Every often I hear that persons which сonsider themselves experts multithreading like debate about how volatile works.
Usually for novice persons explain volatile like: every thread has own cach where different variables can store but volatile don't cached. "experts" began try to be clever and said that it is absolutely wrong - volatile cashed in processor cash but volatile don't cash in processor register.
I cannot find information about it.
Can you confirm or decline this opinion?
P.S. I know that java programmer should know JMM for resolve volatile related questions but I want to get exact answer.