>>747
public static volatile int a;
public static volatile int b;

a, b に volatile をつけると、あるスレッドで更新すれば別のスレッドに更新が伝わるようになる。

逆にvolatileのついていない変数では、あるスレッドで変更しても、その変更が別のスレッドにすぐに伝わるわけではない。