为什么PrintStream.java中的println(Object x)方法从同步块外部调用String.value



为什么PrintStream.java中的println(Object x(方法从同步块外部调用String.valueOf((?

为什么不使用现有的打印(Object obj(?

性能?

String.valueOf(x)调用x上的toString()方法。此方法的实现可以执行任何操作,包括在此实例或其他PrintStream实例上进行同步。为了避免死锁,需要在锁之外调用String.valueOf()

print方法不能重复使用,因为换行符需要在对象之后立即打印,即使有其他线程将其他数据写入同一PrintStream。为了实现这一点,从synchronized块内调用printnewLine

最新更新