打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
消费者的退出
不需要担心消费者会在一个无限循环里轮询消息,因为消费者可以优雅地退出循环。如果确定要退出循环,需要通过另一个线程调用consuner.wakeup()方法。如果循环运行在主线程里,可以在ShutdownHook里调用该方法。要记住,consumer.wakeup()是消费者唯一一个可以从其他线程里安全调用的方法。调用consuner.wakeup()可以退出poll(),并抛出WakeupException异常,或者如果调用consuner.wakeup()时线程没有等待轮询,那么异常将在下一轮调用poll()时抛出。我们不需要处理WakeupException,因为它只是用于跳出循环的一种方式。不过,在退出线程之前调用consumer.close()是很有必要的,它会提交任何还没有提交的东西,并向群组协调器发送消息,告知自己要离开群组,接下来就会触发再均衡,而不需要等待会话超时。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
选中全部的9
Java nio入门教程详解(0035)
Java NIO类库Selector机制解析(下)
4.2.2 Service进阶
WAKEUP sound vol.10
Androidflinger
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服