gpt4 book ai didi

Java:被过度调用的方法的设计模式

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:13:55 25 4
gpt4 key购买 nike

在 Java 中保护方法不被过度调用,同时仍然保持非阻塞的最佳实践是什么?

我的用例是音频数据的自定义缓冲区。可以从中轮询数据的缓冲区方法必须是非阻塞的,并且当没有数据可用时该方法返回 null 是可以接受的。阻塞的方法是 Not Acceptable ,所以我不想让它同步。当该方法被过度调用时,声音质量会下降。那么,我如何才能在重负载下保护该方法,而不依赖于调用者自己的行为呢?

我目前的做法是记住上次轮询的时间戳,如果它早于 3 毫秒,则返回 null,但这感觉有点“hacky”...

最佳答案

ConcurrentLinkedQueue就是这样做的。它是非阻塞的,如果没有可用消息则返回 null。或者是 ConcurrentLinkedDequeue

关于Java:被过度调用的方法的设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23761904/

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