关于Java原子类的有关问题-菜鸟向

关于Java原子类的问题-初学者向
        最近在学习Thinking in java中关于并发方面的知识,看到原子类的时候,用书上给的代码测试,但是出现了不同的结果,书上说用了原子类,可以消除synchronized关键字,且此程序不会失败,所以设置了一个5秒的Timer来退出程序。
        但是我运行5次的结果却是在1, 1, 33, 15, 5的时候失败了,求解,谢谢了。
        PS:IDE:IntelliJ IDEA 13.1.4 
                JDK:jdk1.8.0_05。
        顺便问一个小问题:IntelliJ IDEA怎么设置某一个程序的命令行参数呢。


package concurrency;

import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicInteger;

public class AtomicIntegerTest implements Runnable {
    private AtomicInteger i = new AtomicInteger(0);

    public int getValue() {
        return i.get();
    }

    private void evenIncrement() {
        i.addAndGet(2);
    }

    @Override
    public void run() {
        while (true) {
            evenIncrement();
        }
    }

    public static void main(String[] args) {
        new Timer().schedule(new TimerTask() {
            @Override
            public void run() {
                System.err.println("Aborting");
                System.exit(0);
            }
        }, 5000);
        ExecutorService exec = Executors.newCachedThreadPool();
        AtomicityTest ait = new AtomicityTest();
        exec.execute(ait);
        while (true) {
            int val = ait.getValue();
            if (val % 2 != 0) {
                System.out.println(val);
                System.exit(0);
            }
        }
    }
}


------解决方案--------------------
jdk1.6实测无问题。

你这里连多线程都没有,何来的安全问题?
------解决方案--------------------
AtomicityTest ait = new AtomicityTest();
这是什么类?写错了?

程序没问题,应该每次在5秒后
  System.err.println("Aborting");
                System.exit(0);
结束程序。