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

<2>同步对象可以是哪些?

同步对象可以是Java中的任意对象类型 。

<3>举例说明

在main方法中同时开启四个线程 , 执行结果如下:

我们再看没有加同步块情况下 , 运行结果:

结果说明:没有添加同步块情况下 , t1线程访问时 , t2、t3、t4线程也可以访问 , 所以输出结果有四个线程 。 然而添加同步块后 , t1线程访问 , 则其他线程不允许访问 , 并且t1时间片足够可以运行到程序结束 , 所以输出结果只有t1线程 。

2.2、使用synchronized同步方法

<1>同步方法基本语法

<2>同步方法的同步对象是是哪个?

同步方法分为实例方法和静态方法而言 。

推荐阅读