首页 / 设计模式 / Java:过度调用方法的设计模式
Java:过度调用方法的设计模式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java:过度调用方法的设计模式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1148字,纯文字阅读大概需要2分钟。
内容图文
![Java:过度调用方法的设计模式](/upload/InfoBanner/zyjiaocheng/679/255cec9fcbda4a5389166a233a73dfed.jpg)
在防止方法被过度调用的同时仍保持其非阻塞状态的Java最佳实践是什么?
我的用例是音频数据的自定义缓冲区.可以从中轮询数据的缓冲区方法必须是非阻塞的,并且当没有可用数据时,该方法返回null也是可以接受的.该方法被阻塞是不可接受的,因此我不想使其同步.
过度调用该方法时,声音质量会下降.那么,如何在重载下保护方法,而又不依赖调用者来表现自己呢?
我当前的方法是记住上次轮询的时间戳,如果它比3ms短,则返回null,但这感觉有点“ hacky” …
解决方法:
由于您要求使用“ java设计模式”,因此我想说有一个线程繁忙的轮询在某种程度上是一种反模式.一般而言,但这并不是人们看到的很多东西.
当我看到它时,几乎总是由呼叫者来限制他们的呼叫速度.我认为调用方对保持良好音质有着共同的兴趣,并且不希望消耗CPU来破坏它.您能记录您的方法并将其留给调用方吗?
但是,为回答您的问题,我将倒置责任,并让使用者注册一个回调,该回调由您的缓冲区按时间表(3ms ??)提供.因此,生产者推动了而不是消费者拉动.
新生的“反应流”规范(http://www.reactive-streams.org/)对此进行了实现,此外,消费者必须向生产者请求它可以处理多少个项目,然后生产者在它们可用时将其供给.
即使那不是直接适用的,它也会给您一些想法.
祝好运.
内容总结
以上是互联网集市为您收集整理的Java:过度调用方法的设计模式全部内容,希望文章能够帮你解决Java:过度调用方法的设计模式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。