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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。