上QQ阅读APP看书,第一时间看更新
2.2.6 方法println()也是同步的
在JDK的源代码中也用到了synchronized(this)使用的体现,PrintStream.java类中的println()重载方法代码如下:
public void println(String x) { synchronized (this) { print(x); newLine(); } } public void println(Object x) { String s = String.valueOf(x); synchronized (this) { print(s); newLine(); } }
两个方法都用到synchronized (this)同步代码块,说明public void println(String x)和public void println(Object x)方法在synchronized (this)同步代码块中是按顺序执行,是同步执行,这样输出的一行信息只属于某一个线程,不会出现输出的数据所属两个线程的情况。