volatile不能保证线程安全