国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

多線程異步調(diào)用等待響應(yīng)結(jié)果后繼續(xù)處理

2019-11-11 00:55:04
字體:
供稿:網(wǎng)友
1、在有響應(yīng)的時候,使用ResponseFuture對象,并在onResponse方法中,將響應(yīng)設(shè)置到Futrue中。

import com.google.common.util.concurrent.AbstractFuture;

public class ResponseFuture<JsonPRotocol>extends AbstractFuture<JsonProtocol>

{

    private final Executorexecutor;

    public ResponseFuture()

    {

        if (ThreadLocalUtil.get("isServer") ==null)

        {

            //TODO 這里是錯誤的,把這行代碼移到一個單例的全局共享中取,避免每次new。如果是服務(wù)端,那么所有的服務(wù)端都共享一個線程池

            executor = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors(),

                    new RpcThreadFacotry("CallBack"));

        }

        else

        {

            //單線程執(zhí)行器

            executor = MoreExecutors.directExecutor();

        }

    }

    /**

     * 當(dāng)響應(yīng)回來的時候,結(jié)果被設(shè)置到future中,因此從future中可以獲得一個異步的響應(yīng)結(jié)果

     * @param responseProtocol

     */

    public void onResponse(JsonProtocolresponseProtocol)

    {

        //向future中設(shè)置值

        super.set(responseProtocol);

    }

    /**

     * 當(dāng)響應(yīng)有結(jié)果時候可以直接runnable的方法

     * @param runnable

     */

    public void addCallBack(Runnablerunnable)

    {

        super.addListener(runnable,executor);

    }

}

2、等待線程獲得響應(yīng)結(jié)果(使用future.get阻塞等待異步線程的響應(yīng))

        ResponseFuture<JsonProtocol>reponseFuture = client.futureInvoke(JsonProtocolReqeust);

        JsonProtocol JsonProtocolResponse =null;

        try

        {

            JsonProtocolResponse =reponseFuture.get(JsonProtocolReqeust.getRpcMetadata().getTimeOut(),

                    TimeUnit.MILLISECONDS);

        }

        catch (ExecutionException e){}

        catch (TimeoutException e)

        {

            throw new RuntimeException("調(diào)用遠(yuǎn)程服務(wù)響應(yīng)超時",e);

        }


上一篇:安卓自定義廣播

下一篇:go crontab

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 达州市| 孙吴县| 康定县| 吉安市| 军事| 合江县| 广德县| 长阳| 永顺县| 山西省| 海伦市| 蛟河市| 屏南县| 海阳市| 辽阳县| 富裕县| 洛隆县| 宁强县| 天水市| 古蔺县| 崇文区| 新宁县| 河北省| 延寿县| 叙永县| 拉孜县| 榆树市| 桐庐县| 隆回县| 清丰县| 深州市| 全椒县| 平南县| 湖南省| 义马市| 冕宁县| 巫溪县| 寿宁县| 舟山市| 开阳县| 兴城市|