java中常常使用此作为屏幕的输出。
众所周知,在java这种OOP语言,对屏幕作输出内容,分为两步,
// 将对屏幕的输出抽象为一个输出流对象
// 注意,此处并未使用new创建对象,而是使用System提供的out
PrintStream out=System.out;
// 对屏幕输出内容,即对输出流对象写内容
out.println("shit world, i fuck you!")
注意,println中使用synchronized (this) {},避免并发情况,对屏幕输出流写内容。
// PrintStream中的一个方法,该方法被多种重写。
public void println(long x) {
synchronized (this) {
print(x);
newLine();
}
}
synchronized是悲观的对象锁:
synchronized代码块被某线程运行中,对象被锁——其它线程无法访问该对象。
System.out.println与synchronized
原文:https://www.cnblogs.com/1river/p/14800950.html