最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

總結(jié)一下Java回調(diào)機(jī)制的相關(guān)知識

 更新時間:2021年06月29日 14:16:23   作者:CodingALife  
今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識,文章圍繞著Java回調(diào)機(jī)制展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下

一、回調(diào)

回調(diào)分為同步回調(diào)和異步回調(diào), 假如以買彩票的場景來模擬, 我買彩票, 調(diào)用彩票網(wǎng),給我返回的結(jié)果確定是否中獎,同步回調(diào)就是,我買了彩票之后, 需要等待彩票網(wǎng)給我返回的結(jié)果, 這個時候我不能做其他事情, 我必須等待這個結(jié)果, 這就叫同步回調(diào), 同步, 就意味著等待, 我不能去做其他事情, 必須等待, 異步回調(diào)就是, 我買了彩票之后, 可以去做其他事情, 然后當(dāng)彩票網(wǎng)有了結(jié)果和消息, 再給我返回消息, 其中最明顯的方式就是在得到彩票結(jié)果的函數(shù)之中, 添加一個其他的方法, 如果我的其他方法可以立即執(zhí)行, 那么就是異步的(給出是否中獎需要花費很長的時間), 而在測試函數(shù)之中, 前后兩個, 那是發(fā)生在測試函數(shù)的線程之中的, 肯定是一前一后按照次序的, 在這個地方不是顯示同步異步的地點.

即我調(diào)用你的函數(shù),你調(diào)用我的函數(shù)。通俗講是類A的函數(shù)a()調(diào)用類B的函數(shù)b(),當(dāng)類B的b()函數(shù)的執(zhí)行時又去調(diào)用類A里的函數(shù)a1()。是一種雙向的調(diào)用方式。一般情況下,回調(diào)分兩種,分別是同步回調(diào)異步回調(diào)

二、同步回調(diào)

一種雙向的調(diào)用模式,被調(diào)用方在函數(shù)被調(diào)用時也會調(diào)用對方的函數(shù),中間不做其他操作。

例如:其中CalImp屬于類A,CalLogin屬于類B。

public interface ICallBack {
    public void calResult(int a,int b,int result);
}
 
public class CalImpl implements ICallBack{
 
    private int a;
    private int b;
 
    public CalImpl(int a, int b){
        this.a = a;
        this.b = b;
    }
 
    public void calculate(){
       new CalLogic().calculateLogic(a,b,this);
    }
 
    @Override
    public void calResult(int a, int b, int result) {
        //控制臺輸出
        System.out.println(a + " + " + b + " = " + result);
    }
}
 
public class CalLogic {
 
    public void calculateLogic(int a,int b,ICallBack iCallBack){
        int result = a + b;
        System.out.println("被調(diào)用線程執(zhí)行完成...");
        iCallBack.calResult(a, b, result);
    }
 
}
 
public class TestCallBack {
 
    public static void main(String[] args) {
        int a = 22;
        int b = 33;
        //實例化計算器Calculator類
        CalImpl calculator = new CalImpl(a,b);
        //調(diào)用計算器calculator的計算函數(shù)
        calculator.calculate();
        System.out.println("主線程執(zhí)行完成...");
 
        //22 + 33 = 55
        //主線程執(zhí)行完成...
    }
}

三、異步回調(diào)

一種類似消息或事件的機(jī)制。被調(diào)用方函數(shù)在收到某種訊息或發(fā)生某種事件(完成某個操作)時,才去調(diào)用對方的函數(shù),即通過異步消息進(jìn)行通知。

簡單來說,類A的a()函數(shù)調(diào)用類B的b()函數(shù),但是b()函數(shù)很耗時,不確定什么時候執(zhí)行完畢,如果是同步調(diào)用的話會等b()執(zhí)行完成后才往下執(zhí)行回調(diào)類A中的函數(shù),如果是異步回調(diào)的話調(diào)用了b()函數(shù),雖然b()函數(shù)沒有執(zhí)行完,但a類仍然繼續(xù)往下執(zhí)行,為了完成這點,就需要另開一個線程了。

例如:其中CalImp屬于類A,CalLogin屬于類B。類A中新開了一個線程執(zhí)行。

輸出主線程執(zhí)行完成...明明是放在代碼的最后執(zhí)行的,結(jié)果卻先執(zhí)行輸出了,這是因為開了另一個線程。

四、同步異步回調(diào)區(qū)別

異步回調(diào)和同步回調(diào)最大的不同就是:異步回調(diào)里新建了一個子線程。

五、異步場景

異步回調(diào)常見于請求服務(wù)器數(shù)據(jù),當(dāng)取到數(shù)據(jù)時,會進(jìn)行回調(diào)。

到此這篇關(guān)于總結(jié)一下Java回調(diào)機(jī)制相關(guān)知識的文章就介紹到這了,更多相關(guān)Java回調(diào)機(jī)制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java字符串轉(zhuǎn)駝峰格式的方法

    Java字符串轉(zhuǎn)駝峰格式的方法

    在開發(fā)場景中,我們會遇到一些涉及字符串的轉(zhuǎn)化,本文主要介紹了Java字符串轉(zhuǎn)駝峰格式的方法,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • 用SpringBoot框架來接收multipart/form-data文件方式

    用SpringBoot框架來接收multipart/form-data文件方式

    這篇文章主要介紹了用SpringBoot框架來接收multipart/form-data文件方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Java自學(xué)書籍Top 10

    Java自學(xué)書籍Top 10

    這篇文章主要為大家推薦了Java書籍Top 10,是由Java Inside推薦的十本不錯的Java書籍,感興趣的小伙伴們可以參考一下
    2016-09-09
  • SpringBoot中過濾器Filter+JWT令牌實現(xiàn)登錄驗證

    SpringBoot中過濾器Filter+JWT令牌實現(xiàn)登錄驗證

    本文主要介紹了SpringBoot中過濾器Filter+JWT令牌實現(xiàn)登錄驗證,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-04-04
  • 教你怎么用Java獲取國家法定節(jié)假日

    教你怎么用Java獲取國家法定節(jié)假日

    這篇文章主要介紹了教你怎么用Java獲取國家法定節(jié)假日,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • 23種設(shè)計模式(14)java迭代器模式

    23種設(shè)計模式(14)java迭代器模式

    這篇文章主要為大家詳細(xì)介紹了23種設(shè)計模式之java迭代器模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • java 分行讀取實例

    java 分行讀取實例

    今天小編就為大家分享一篇java 分行讀取實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • jcrop 網(wǎng)頁截圖工具(插件)開發(fā)

    jcrop 網(wǎng)頁截圖工具(插件)開發(fā)

    今天給大家介紹一下一個web 中經(jīng)常會用到的截圖(如:頭像等)工具,需要的朋友可以了解下
    2012-11-11
  • springboot項目集成swagger-bootstrap-ui全過程

    springboot項目集成swagger-bootstrap-ui全過程

    這篇文章主要介紹了springboot項目集成swagger-bootstrap-ui全過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • openjdk與Oraclejdk的區(qū)別

    openjdk與Oraclejdk的區(qū)別

    這篇文章主要介紹了openjdk與Oraclejdk的區(qū)別,幫助大家更好的了解JAVA,感興趣的朋友可以了解下
    2020-08-08

最新評論

鄂尔多斯市| 靖西县| 房产| 新建县| 县级市| 文登市| 福泉市| 陇西县| 丹东市| 乌海市| 门头沟区| 宣武区| 曲松县| 盐津县| 随州市| 海安县| 吉木乃县| 黑河市| 剑河县| 贵阳市| 德安县| 武清区| 惠州市| 通化县| 九寨沟县| 新化县| 高雄市| 百色市| 高阳县| 邹城市| 逊克县| 犍为县| 武乡县| 淄博市| 乌鲁木齐县| 蕲春县| 临沧市| 通河县| 中山市| 布拖县| 门源|