真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java多線程中的回調(diào)如何運用

這篇“java多線程中的回調(diào)如何運用”文章的知識點大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“java多線程中的回調(diào)如何運用”文章吧。

渠縣ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!

1.回調(diào)方式

(1)class A實現(xiàn)接口CallBack callback——背景1

(2)class A中包含一個class B的引用b ——背景2

(3)class B有一個參數(shù)為callback的方法f(CallBack callback) ——背景3

(4)A的對象a調(diào)用B的方法 f(CallBack callback) ——A類調(diào)用B類的某個方法 C

(5)然后b就可以在f(CallBack callback)方法中調(diào)用A的方法 ——B類調(diào)用A類的某個方法D

2.多線程中的回調(diào)

Java多線程中可以通過callable和future或futuretask結(jié)合來獲取線程執(zhí)行后的返回值。實現(xiàn)方法是通過get方法來調(diào)用callable的call方法獲取返回值。

其實這種方法本質(zhì)上不是回調(diào),回調(diào)要求的是任務(wù)完成以后被調(diào)用者主動回調(diào)調(diào)用者的接口。而這里是調(diào)用者主動使用get方法阻塞獲取返回值。

public class 多線程中的回調(diào) {
    //這里簡單地使用future和callable實現(xiàn)了線程執(zhí)行完后
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        ExecutorService executor = Executors.newCachedThreadPool();
        Future future = executor.submit(new Callable() {
            @Override
            public String call() throws Exception {
                System.out.println("call");
                TimeUnit.SECONDS.sleep(1);
                return "str";
            }
        });
        //手動阻塞調(diào)用get通過call方法獲得返回值。
        System.out.println(future.get());
        //需要手動關(guān)閉,不然線程池的線程會繼續(xù)執(zhí)行。
        executor.shutdown();
 
    //使用futuretask同時作為線程執(zhí)行單元和數(shù)據(jù)請求單元。
    FutureTask futureTask = new FutureTask(new Callable() {
        @Override
        public Integer call() throws Exception {
            System.out.println("dasds");
            return new Random().nextInt();
        }
    });
    new Thread(futureTask).start();
    //阻塞獲取返回值
    System.out.println(futureTask.get());
}
@Test
public void test () {
    Callable callable = new Callable() {
        @Override
        public Object call() throws Exception {
            return null;
        }
    };
    FutureTask futureTask = new FutureTask(callable);
 
}
}

以上就是關(guān)于“java多線程中的回調(diào)如何運用”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


本文名稱:java多線程中的回調(diào)如何運用
文章URL:http://weahome.cn/article/gcoihg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部