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

Java多線程回調方法實例解析

 更新時間:2017年11月09日 09:51:17   作者:崢嶸life  
這篇文章主要介紹了Java多線程回調方法實例解析,具有一定參考價值,需要的朋友可以了解下。

所謂回調,就是客戶程序C調用服務程序S中的某個方法A,然后S又在某個時候反過來調用C中的某個方法B,對于C來說,這個B便叫做回調方法。

下面看一個實際例子來理解:

本示例設置一個提問者,一個回答者,而回答者需要回答提問者一個很深奧的問題時,這時需要很多時間去查找,提問者又開始做其他的事情,

等回答者找到答案后,再把答案告訴提問者。

一.提問者的類

涉及到長時間的思考,要sleep,要繼承Thread

package com.xykj.thread;
public class XiaoZhang extends Thread {
  // 回答1+1,很簡單的問題不需要線程
  public int add(int num1, int num2) {
    return num1 + num2;
  }
  // 重寫run方法
  @Override
  public void run() {
    // 回答地球為什么是圓的
    askquestion();
    super.run();
  }
  // 回調接口的創(chuàng)建,里面要有一個回調方法
  //回調接口什么時候用呢?這個思路是最重要的
  //
  public static interface CallPhone {
    public void call(String question);
  }
  // 回調接口的對象
  CallPhone callPhone;
  // 回答地球為什么是圓的
  private void askquestion() {
    System.err.println("開始查找資料!");
    try {
      sleep(3000);// 思考3天
    } catch (InterruptedException e) {
      e.printStackTrace();
    }
    // 把答案返回到回調接口的call方法里面
    if (callPhone!=null) {//提問者實例化callPhone對象,相當于提問者已經告訴我,我到時用什么方式回復答案
      //這個接口的方法實現是在提問者的類里面
      callPhone.call("知道了,?。?!~~~~百度有啊");
    }   
  }
}

二.提問者的類

package com.xykj.thread;
import com.xykj.thread.XiaoZhang.CallPhone;
public class MainClass {
  /**
   * java回調方法的使用
   * 實際操作時的步驟:(以本實例解釋)
   * 1.在回答者的類內創(chuàng)建回調的接口
   * 2.在回答者的類內創(chuàng)建回調接口的對象,
   * 3.在提問者類里面實例化接口對象,重寫接口方法
   * 2.-3.這個點很重要,回調對象的實例化,要在提問者的類內實例化,然后重寫接口的方法
   * 相當于提問者先把一個聯絡方式給回答者,回答者找到答案后,通過固定的聯絡方式,來告訴提問者答案。
   * 4.調用開始新線程的start方法
   * 5.原來的提問者還可以做自己的事
   * */
  public static void main(String[] args) {
    // 小王問小張1+1=?,線程同步
    XiaoZhang xiaoZhang = new XiaoZhang();
    int i = xiaoZhang.add(1, 1);//回答1+1的答案
    // 問小張地球為什么是圓的?回調方法的使用
    //這相當于先定好一個返答案的方式,再來執(zhí)行實際操作
    // 實例化回調接口的對象
    CallPhone phone = new CallPhone() {
      @Override
      public void call(String question) {
       //回答問題者,回答后,才能輸出答案
       System.err.println(question);
      }
    };
    //把回調對象賦值給回答者的回調對象,回答問題者的回調對象才能回答問題
    xiaoZhang.callPhone = phone;
    System.out.println("交代完畢!");
    //相關交代完畢之后再執(zhí)行查詢操作
    xiaoZhang.start();
    //小王做自己的事!
    System.out.println("小王做自己的事!");
  }
}

運行結果:

可以看到:肯定是要提問者先交代完回答者怎樣的方式回答問題,

然后提問者再做自己的事,回答者開始思考答案。

這里交代聯絡方式具體表現就是在提問者的類里面實例化回調接口和實現回答的方法。

大部分內容已在代碼中體現,這里便不再贅述。

總結

以上就是本文關于Java多線程回調方法實例解析的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:java多線程編程實例淺談Java多線程的優(yōu)點及代碼示例、Java利用future及時獲取多線程運行結果等以及本站其他相關內容,有什么問題可以隨時留言,小編會及時回復大家的。感謝朋友們對本站的支持!

相關文章

  • Java通過動態(tài)規(guī)劃設計股票買賣最佳時機

    Java通過動態(tài)規(guī)劃設計股票買賣最佳時機

    動態(tài)規(guī)劃可謂是大名鼎鼎,筆試面試中的高頻考點,也是重點難點,動態(tài)規(guī)劃類型題目靈活多變,難度系數也相對較高,往往我們做不好動態(tài)規(guī)劃的題目就會與心儀的offer失之交臂,本篇文章我們就一起來研究一下動態(tài)規(guī)劃設計股票買賣最佳時機
    2022-10-10
  • Java實現拓撲排序算法的示例代碼

    Java實現拓撲排序算法的示例代碼

    在圖論中,拓撲排序(Topological Sorting)是一個有向無環(huán)圖(DAG, Directed Acyclic Graph)的所有頂點的線性序列。本文將為大家講講拓撲排序算法的原理及實現,需要的可以參考一下
    2022-07-07
  • Java 數據結構與算法系列精講之環(huán)形鏈表

    Java 數據結構與算法系列精講之環(huán)形鏈表

    無論是靜態(tài)鏈表還是動態(tài)鏈表,有時在解決具體問題時,需要我們對其結構進行稍微地調整。比如,可以把鏈表的兩頭連接,使其成為了一個環(huán)狀鏈表,通常稱為循環(huán)鏈表
    2022-02-02
  • Java常用類之System類的使用指南

    Java常用類之System類的使用指南

    System類代表系統,系統級的很多屬性和控制方法都放置在該類的內部。該類位于java.lang包。本文將通過示例為大家詳細講講System類的使用,需要的可以參考一下
    2022-07-07
  • Spring Boot假死診斷實戰(zhàn)記錄

    Spring Boot假死診斷實戰(zhàn)記錄

    這篇文章主要給大家介紹了關于Spring Boot假死診斷的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Spring Boot具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-07-07
  • SpringMVC 重新定向redirect請求中攜帶數據方式

    SpringMVC 重新定向redirect請求中攜帶數據方式

    這篇文章主要介紹了SpringMVC 重新定向redirect請求中攜帶數據方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • SpringBoot實現圖片防盜鏈功能

    SpringBoot實現圖片防盜鏈功能

    出于安全考慮,我們需要后端返回的圖片只允許在某個網站內展示,不想被爬蟲拿到圖片地址后被下載,或者,不想瀏覽器直接訪問圖片鏈接,所以本文將給大家介紹SpringBoot實現圖片防盜鏈功能,需要的朋友可以參考下
    2024-04-04
  • Java?BigDecimal類的一般使用、BigDecimal轉double方式

    Java?BigDecimal類的一般使用、BigDecimal轉double方式

    這篇文章主要介紹了Java?BigDecimal類的一般使用、BigDecimal轉double方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Java class文件格式之特殊字符串_動力節(jié)點Java學院整理

    Java class文件格式之特殊字符串_動力節(jié)點Java學院整理

    特殊字符串出現在class文件中的常量池中,本著循序漸進和減少跨度的原則, 首先把class文件中的特殊字符串做一個詳細的介紹, 然后再回過頭來繼續(xù)講解常量池,對java class 文件格式相關知識感興趣的的朋友一起學習吧
    2017-06-06
  • 通過實例解析JMM和Volatile底層原理

    通過實例解析JMM和Volatile底層原理

    這篇文章主要介紹了通過實例解析JMM和Volatile底層原理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01

最新評論

辉南县| 宣恩县| 永安市| 建昌县| 枣庄市| 安福县| 常州市| 武清区| 榆林市| 罗江县| 开封县| 阿巴嘎旗| 色达县| 大厂| 理塘县| 阿拉善盟| 彰化市| 枝江市| 五莲县| 体育| 松阳县| 彝良县| 栖霞市| 大悟县| 沈阳市| 漳平市| 夏河县| 阳城县| 高淳县| 天峨县| 萨迦县| 手机| 隆尧县| 西贡区| 斗六市| 洱源县| 定日县| 武定县| 凯里市| 巴塘县| 南安市|