int x,y;
volatile int z;
public static void main(String[] args) {
ThreadPoolExecutor pool = (ThreadPoolExecutor)Executors.newFixedThreadPool(5);
MainTest mission = new MainTest();
pool.execute(new MissionRead(mission));
pool.execute(new MissionWrite(mission));
pool.execute(new MissionWrite(mission));
pool.shutdown();
}
public void set() {
System.out.println("set start");
x++;
y++;z++;
System.out.println("set end");
}
public void get() {
System.out.println(Thread.currentThread().getName() +": get start");
System.out.println(Thread.currentThread().getName() +": z is " + z);
System.out.println(Thread.currentThread().getName() + ": x is " + x);
System.out.println(Thread.currentThread().getName() +": y is " + y);
System.out.println(Thread.currentThread().getName() +": get end");
}
вывод: pool-1-thread-1: начало работы
установить начало
установить конец
установить начало
установить конец
pool-1-thread-1: z равно 0
пул-1-нить-1: х равен 2
пул-1-нить-1: у 2
pool-1-thread-1: получить конец
ожидаемый результат: pool-1-thread-1: получить начало
установить начало
установить конец
установить начало
установить конец
pool-1-thread-1: z равен 2
пул-1-нить-1: х равен 2
пул-1-нить-1: у 2
pool-1-thread-1: получить конец
почему в выводе не отображается обновленное значение z с изменчивыми ключевыми словами.