美文网首页
用LinkedBlockingQueue一个接口解决问题后的一点

用LinkedBlockingQueue一个接口解决问题后的一点

作者: heheworld | 来源:发表于2020-07-22 10:23 被阅读0次

接手上任的项目

有个场景是服务端不断向本地LinkedBlockingQueue 添加数据,

本地实时去取LinkedBlockingQueue 中数据

但服务端何时停止添加数据时机不得而之。

之前代码是开启一个超时机制轮询(中间考虑性能,加了sleep间隔)

超时为空则判断退出(具体实现基于while循环),

思路没什么问题。

但实际使用过程中,中断时机总是时灵时不灵。

尝试去调整,

首先想到的是,kotlin协程里的withTimeoutOrNull搭配LinkedBlockingQueue的take阻塞

但貌似这么一阻塞,超时机制也失效了。

这时候 无意看到 LinkedBlockingQueue的 poll(long timeout, TimeUnit unit)

方法,这不正是我想要的么。

解决问题,一点没有开心的感觉,这程序的世界,真的是浩瀚无垠,需要不断的积累和反思,

任重道远,努力吧!

相关文章

网友评论

      本文标题:用LinkedBlockingQueue一个接口解决问题后的一点

      本文链接:https://www.haomeiwen.com/subject/mtlzkktx.html