Java-synchronized

为什么要使用synchronized?

为了保证在多个线程同时操作一个对象的时候,保证数据的正确性。

synchronized可以保证只有一个线程获得到对象的锁,并对对象进行操作

synchronized的类型

synchronized修饰普通函数(非静态函数)

作用:锁住当前函数的对象。

synchronized修饰静态函数

作用:锁住当前类的所有对象,也就是说进入synchronized函数后,只能有一个线程对当前类的对象进行操作。

synchronized同步代码块传入对象

作用:锁住所传入的对象

synchronized传入类对象

与锁静态方法类似,是锁一个类的所有对象,就像上面的相当于锁住了所有的LinkedList对象。

总结

synchronized可以满足最简单的线程之间冲突造成的数据错误的情况,是线程直接的同步(防止出错)方法,后面还有更多的方法值得我们去学习。

打赏