13.7.16

了解exists()函数

这个是我自己的个人笔记。

四个exists()函数

  • exists(String path, boolean watch)
  • exists(String path, boolean watch, AsyncCallback.StateCallback cb, Object ctx)
  • exists(String path, Watcher watcher)
  • exists(String path, Watcher watcher, AsyncCallback.StateCallback cb, Object ctx)
基本上这四个函数可以分为:
是否采用缺省监控器是否带异步回调

理解缺省监控器

要进一步理解整个编程模型,就需要先理解什么是缺省监控器。一个ZooKeeper Session会带有一个缺省监控器,这个监控器有两种设置的方法
  • 随构函数设置
  • 使用注册函数设置

缺省监控器的调用

可以看出,exists()方法在watch设定为true时,将会调用缺省监控器。从这个角度来说,除非有很必要的原因,我觉得这种相对“方便”的方法还是少用为妙,尤其是在现在lambda表达式这么方便的时候。

理解回调


从上面的代码来看并没有看到太多关于callback回调的实现,只知道它被放入到一个队列里进行处理。更深入的代码实现先不要花时间去看,可以从另一个角度来查看相关的信息。

回调函数的函数签名



No comments: