Antes de aparecer a keyword volatile, como é que o Java garantia que a VM fosse realmente buscar o valor de uma variável, em vez de ir buscar os valores na cache dos registos?
Ver def.
Obrigado
Antes de aparecer a keyword volatile, como é que o Java garantia que a VM fosse realmente buscar o valor de uma variável, em vez de ir buscar os valores na cache dos registos?
Ver def.
Obrigado
Com blocos sincronizados. O cache nunca é usado em blocos sincronizados.
Então, sempre que você tiver um acesso multi-threaded a uma variável, ou ela deve ser volatile, ou deve estar dentro de um bloco desses toda vez que é lida/alterada.