gpt4 book ai didi

java - 在java中多次同步同一引用

转载 作者:行者123 更新时间:2023-12-01 17:19:50 26 4
gpt4 key购买 nike

我正在修改现有的 java 多线程应用程序。在每个线程中,应用程序通过同步方法调用检索输出流对象(我正在考虑用枚举或读写锁替换)。一旦线程获取了引用,它就会再次在输出流上进行同步,然后将 byteArrayOutputStream 传递给它以进行写出)。关于如何优化它的任何想法(如果有的话)——当负载稍高时,我确实看到一些线程处于监视器状态(增加线程数不是我考虑的事情)。任何有用的建议将非常受欢迎。

最佳答案

Within each thread, the application retrieves an outputstream object through a synchronized method call (which I am thinking of replacing with enum or readwritelock).

这似乎很合理。每个线程相互阻塞只是为了获得适当的输出流。如果可以在映射中完成从线程信息到 OutputStream 的映射,您也许可以将其替换为 ConcurrentHashMap

Once the thread has acquired the reference, it then proceeds to synchronize on the outputstream again before passing a byteArrayOutputStream to it for writing out)

一旦它拥有适当的OutputStream,它就会锁定它以保证对流的唯一访问。您可能想确保流下面的内容尚未同步(通常情况并非如此),但除此之外这似乎是合理的。

Any thoughts on how I can go about optimizing it if at all

在同步成本产生影响之前,您的程序很可能长时间会受到 IO 限制。除非探查器告诉您同步存在性能问题,否则我会将您的优化工作集中在其他地方。

关于java - 在java中多次同步同一引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19526222/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com