1. 为什么要使用synchronized
当存在多个线程操作共享数据时,就会出现线程安全问题,此刻需要保证同一时刻有且只有一个线程在操作共享数据,其他线程必须等到该线程处理完数据后再进行,这样才能保证线程结果的正确性。synchronized(互斥锁)就是解决这问题的,当共享数据被当前正在访问的线程加上互斥锁后,在同一个时刻,其他线程只能处于阻塞状态,直到当前线程释放该锁。
当存在多个线程操作共享数据时,就会出现线程安全问题,此刻需要保证同一时刻有且只有一个线程在操作共享数据,其他线程必须等到该线程处理完数据后再进行,这样才能保证线程结果的正确性。synchronized(互斥锁)就是解决这问题的,当共享数据被当前正在访问的线程加上互斥锁后,在同一个时刻,其他线程只能处于阻塞状态,直到当前线程释放该锁。