java什么是同步什么是异步,java实现异步的几种方法

  java什么是同步什么是异步,java实现异步的几种方法

  本篇文章将对Java异步进行介绍,希望对大家有所帮助。

  如何解决写爬虫IP受阻的问题?立即使用。

  异步:异步与同步相对。当发出异步过程调用时,调用方可以在获得结果之前继续执行后续操作。

  也就是说,无论异步方法执行代码需要多长时间,对主线程都没有影响,主线程可以继续向下执行。

  例如:一条有分叉的水管,分叉口就是异步调用入口。

  端口A为主线程,端口B为辅助线程。B口堵了东西,不影响a口供水。

  定义回调接口

  异步代码执行后,结果通常需要一些处理,

  所以定义一个接口来处理异步结果。

  /**

  *定义回调接口

  * @作者YZQ

  *

  */

  公共接口MyCallback {

  /**

  *定义回调处理方法。

  * @param对象

  */

  void回调(Object对象);

  }定义异步实现类

  /**

  *异步任务类

  * @作者YZQ

  *

  */

  公共类AsynTask {

  /**

  *处理任务

  * @param myCallback处理任务后的回调

  */

  公共void任务(最终MyCallback myCallback){

  Thread Thread=new Thread(new Runnable(){

  @覆盖

  公共无效运行(){

  尝试{

  //线程休眠3秒,模拟这个线程执行的时间太长,也就是上面说的【端口B有东西堵住了】。

  thread . sleep(3000);

  } catch (InterruptedException e) {

  e . printstacktrace();

  }

  //完成0到99的累加

  int sum=0;

  for(int I=0;i100i ){

  sum=I;

  }

  //将结果交给接口的实现类进行处理。

  my callback . callback(sum);

  }

  });

  //启动线程

  thread . start();

  }

  }测试:

  /**

  *测试类别

  * @作者YZQ

  *

  */

  公共类测试{

  公共静态void main(String[] args) {

  //调用异步任务

  新建AsynTask()。任务(新的MyCallback() {

  //实现回调方法

  @覆盖

  公共void回调(对象对象){

  System.out.println(异步回调处理:值 object );

  }

  });

  System.out.println(主线程等待异步输出);

  尝试{

  thread . sleep(5000);

  } catch (InterruptedException e) {

  e . printstacktrace();

  }

  }

  }

  可以看出:

  程先输出[等待异步输出的主线程],

  然后工作线程输出【异步回调处理:值4950】。

  这就是java异步意味着什么的细节。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: