1. synchronized的作用
锁住代码块,保证同一段代码在某一时刻只能有一个线程执行,该线程执行完毕后,其他线程再执行。目的是防止多线程并发操作导致的异常。
例如:当前有个变量count=0,线程A和线程B同时执行如下代码:
if (count == 0){
count = count + 10;
}
存在这种情况,A执行了if (count == 0) 符合条件,此时B也执行了if语句同样符合条件,然后两个线程都执行 count = count + 10 。最终count=20
2. synchronized几种使用方式