二、キュレーターの使用:非同期呼び出し

コード

    ExecutorService es = Executors.newFixedThreadPool(2);
    //带线程池的异步接口
    cc.create().inBackground((client,event)->{
    //pool-3-thread-1,CuratorEventImpl{type=CREATE, resultCode=0, path='/abc', name='/abc', children=null, context=null,stat=114,114,1573797468244,1573797468244,0,0,0,0,13,0,114, data=null, watchedEvent=null, aclList=null, opResults=null}  
        System.out.println(Thread.currentThread().getName()+","+event);

    },es).forPath("/abc");

    //不带线程池的异步接口
    cc.delete().inBackground((client,event)->{

    //main-EventThread,CuratorEventImpl{type=DELETE, resultCode=0, path='/abc', name='null', children=null, context=null, stat=null, data=null, watchedEvent=null, aclList=null, opResults=null}        
        System.out.println(Thread.currentThread().getName()+","+event);

    }).forPath("/abc");

    Thread.sleep(Integer.MAX_VALUE);

コンセプト

1.inBackground()このメソッドは、パラメータがBackgroundCallbackインタフェースが機能インタフェースであり、非同期コールバックメソッドを追加することです。
2.BackgroundCallback(現在のクライアント・インスタンス)とイベント(イベント・サーバー)のクライアントインターフェイスパラメータ
3.イベントタイプ、CuratorEventTypeは、
次の情報が含まれてい{タイプ= DELETE、resultCodeが= 0 、パス= '/ ABC'、NAME = ' ヌル」、子供=ヌル、コンテキスト=ヌル、STAT =ヌル、データ= NULL、watchedEvent =ヌル、aclList =ヌル、opResults = NULL}
このような削除などの操作の種類に対応する種類、対応する削除()、(作成する対応の作成)など、成功のための応答コード0をResultCodeの
スレッドプールESの4.役割は、デフォルトで、名前で見ることができる影響力を持って長い時間がかかる場合は、メイン・EventThreadシリアル実行スレッドを使用することです、缶カスタム・スレッド・プールによって、この状況を緩和します。

おすすめ

転載: www.cnblogs.com/june777/p/11865701.html