当Zookeeper
客户端启动时,它会创建2个线程:SendThread
和EventThread
中的一个或多个。
在应用程序关闭时,我希望工作线程等待Zookeeper线程完成,但在API中看不到任何合适的东西。
然而,我只能调用ZooKeeper.close()
,它将连接状态设置为CLOSED,并为EventThread排队“死亡事件”。
从客户端Cnxn:
public void disconnect() {
this.sendThread.close();
this.eventThread.queueEventOfDeath();
}
我错过了什么吗?有没有办法在不修改ZK客户端代码的情况下加入Zookeeper线程?
1条答案
按热度按时间chy5wohz1#
不存在适当的API,因此最后不得不使用反射来实现: