- 核心成员变量ackQueue
- 核心函数enqueue、sendAckUpstreamUnprotected、waitForAckHead
PacketResponder线程什么时候启动的?
直接找new PacketResponder关键字。发现是在receiveBlock方法里。这个receiveBlock方法又在writeBlock方法内部。
// 如果是客户端写、并且不是transfer的情况,才启动PacketResponder线程。
if (isClient && !isTransfer) {
responder = new Daemon(datanode.threadGroup,
new