Использование volatile-спецификатора в C / C ++ / Java

При просмотре множества ресурсов по многопоточному программированию обычно появляется ссылка на volatile спецификатор. Ясно, что использование этого ключевого слова не является надежным способом достижения синхронизации между несколькими потоками по крайней мере в C / C ++ и Java (версии 1.4 и ранее). Вот что википедия перечисляет (без объяснения как) как типичное использование этого спецификатора: -

allow access to memory mapped devices allow uses of variables between setjmp and longjmp allow uses of variables in signal handlers busy waiting

Я могу начать видеть роль этого спецификатора в перечисленных выше видах использования, но, поскольку у меня еще нет полного понимания каждой из этих областей, я не могу выяснить, как именно этот спецификатор ведет себя в каждом из этих видов использования.

Может кто-нибудь объяснить?

Ответы на вопрос(8)

Ваш ответ на вопрос