Bonjour à tous,

J'ai un petit souci avec le mot clef Volatile.
Pour le compte d'une formation, j'ai essayé d'illustrer l'utilité de cette déclaration par l'exemple ci-dessous :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class MyThread extends Thread {
 
 
	private boolean m_boucle = true;
 
	public void stopTheJob() {
		m_boucle = false;
	}
 
	/** 
         * {@inheritDoc}
         */
	@Override
	public void run() {
		super.run();
		while (m_boucle) {
			System.out.print('.');
		}		
	}
}

Un thread à l'extérieur évidemment change la valeur de m_boucle, mais avec ou SANS volatile, la boucle s'arrête toujours.
Je suis en Java 5

Merci d'avance.