首页新闻找找看学习计划

学习zookeeper源码时的疑问

0
悬赏园豆:50 [已关闭问题] 关闭于 2019-11-05 15:53

FastLeaderElection中的WorkerSender
在从队列中取消息时,使用的是poll而不是take

public void run() {
  while (!stop) {
    try {
      ToSend m = sendqueue.poll(3000, TimeUnit.MILLISECONDS);
      if (m == null) {
        continue;
      }
      process(m);
    } catch (InterruptedException e) {
      break;
    }
  }
  LOG.info("WorkerSender is down");
}

查看git提交历史记录,这里最开始用的是take

疑问:take的话效率不是更高吗,这个线程只做这一件事,为什么要使用poll呢

meijie93的主页 meijie93 | 菜鸟二级 | 园豆:204
提问于:2019-11-05 10:46
< >
分享
所有回答(1)
0

为了检测stop标志

meijie93 | 园豆:204 (菜鸟二级) | 2019-11-05 15:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册