Java中的多线程安全问题(一)( 四 )

同步的是实例方法:则当前同步对象是this , 指代当前调用该方法的对象实例 。

同步的是静态方法:则当前同步对象是类对象 , 即:XXX.class 。 指代的是当前类的类对象 。

静态方法使用synchronized后 , 则该同步方法一定是线程安全的 。 因为一个类对象只有一份 。 而实例方法则不一定 。

3、使用线程同步的好处与弊端

<1>同步的好处

解决了多线程的安全问题 , 确保程序的正确性 。

<2>同步的弊端

由于加了同步语句块 , 导致一个线程访问时 , 其他线程不能访问 , 所以降低了程序的运行效率 。

4、什么时候该用同步访问

<1>同步的前提是在多个线程的情况下使用 。

<2>同步必须使用同一个同步对象 。

<3>只有满足多个线程下 , 锁定的同步对象是同一个的情况 , 才能够解决线程安全问题 。

推荐阅读