本篇文章将对java异步进行介绍,希望对大家有所帮助。
异步:异步与同步相对,当一个异步过程调用发出后,调用者在没有得到结果之前,就可以继续执行后续操作。
也就是说无论异步方法执行代码需要多长时间,跟主线程没有任何影响,主线程可以继续向下执行。
例如:一条有分叉的水管,分叉口就是异步调用入口。
A口为主线程,B口为辅助线程,当B口有东西塞住,并不影响A口通水。
定义回调接口
异步代码执行完后,结果往往需要一些做一些处理,所以定义一个接口,用来处理异步结果。
/** * 定义回调接口 * @author YZQ * */public interface MyCallback {/*** 定义处理回调方法* @param object*/void callback(Object object);}登录后复制
定义异步实现类
/** * 异步任务类 * @author YZQ * */public class AsynTask {/*** 处理任务* @param myCallback 处理完任务后的回调*/public void task(final MyCallback myCallback){Thread thread=new Thread(new Runnable() {@Overridepublic void run() {try { //线程睡眠3秒,模拟该线程执行时间过长,也就是上面说的【B口有东西塞住】Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}//完成0到99的累加int sum=0;for(int i=0;i测试:
/** * 测试类 * @author YZQ * */public class Test {public static void main(String[] args) {//调用异步任务new AsynTask().task(new MyCallback() { //实现回调方法@Overridepublic void callback(Object object) {System.out.println("异步回调处理:值 "+object);}});System.out.println("主线程等待异步输出");try {Thread.sleep(5000);} catch (InterruptedException e) {e.printStackTrace();}}}登录后复制可以看出:主线程先输出了【主线程等待异步输出】,随后辅助线程输出【异步回调处理:值 4950】。
相关学习推荐:java基础教程
以上就是java异步是什么意思的详细内容,更多请关注易企推科技其它相关文章!
本文地址:网络百科频道 https://www.eeeoo.cn/wangluo/1151730.html,嗨游网一个专业手游免费下载攻略知识分享平台,本站部分内容来自网络分享,不对内容负责,如有涉及到您的权益,请联系我们删除,谢谢!