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呢
为了检测stop标志