栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在多线程Java程序中,每个线程是否都有其自己的System.out副本?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在多线程Java程序中,每个线程是否都有其自己的System.out副本?

是否可以基于“每线程”重定向System.out

不,这是不可能的。

System.out
是静态的,并且在JVM最初启动时,每个JVM都会作为系统类加载器的一部分进行加载。尽管当然建议对每个线程使用适当的日志记录调用,但是我认为有一些原因您无法执行此操作。
System.out
以这种方式使用的可能是第三方库或其他代码。

您可以做的一件事(作为一个激进的建议)是使您自己的

PrintStream
委派给
ThreadLocal<PrintStream>
。但是您将需要
@Override
应用程序调用的适当方法,以使其按线程工作。

最后,如果你问这个是因为你担心的并发,

System.out
PrintStream
所以它已经是
synchronized
在幕后,并可以被多个线程安全地使用。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/496315.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号