使用watcher实现barrier