1,作用的位置不同 synchronized是修饰方法,代码块volatile是修饰变量 2,作用不同 synchronized,可以保证变量修改的可见性及原子性,可能会造成线程的阻塞volatile 仅能实现变量修改的可见性,但无法保证原子性,不会造成线程的阻塞