首先说明一下什么是同步和异步。java同步方法简单理解就是多个任务执行同一个方法按顺序执行既等待第一次执行完成在执行下一次。异步方法则是不需等待既不管第一次方法是否执行完成都会在此执行同步方法所解决的问题就是比如订票系统每个座位就一张票如果用异步方法就有可能导致同一张票被多人购买,这也是所谓的数据脏读而线程安全其实也是这个意思比如有一个list 需要消费list中的数据如果使用非线程安全方法也是很容易导致多个线程拿到相同的数据导致脏读