时间:2021-05-20
相信大家都在项目中遇到过这样的情况,前台需要快速的显示,后台还需要做一个很大的逻辑。比如:前台点击数据导入按钮,按钮后的服务端执行逻辑A,和逻辑B(执行大量的表数据之间的copy功能),而这时前台不能一直等着,要返回给前台,告诉正在处理中就行了。这里就需要用到异步了。
点击按钮 -> 逻辑A ->逻辑B(异步) -> 方法结束。
到底,项目需求明确了,就引入了ExecutorServic线程池。
Java通过Executors提供四种线程池,分别为:
然后看结果:
task1 is starttask3 is start------------task3 end-----------------------task3 end-----------------------task3 end-----------------------task3 end-----------------------task3 end-----------------------task3 end-----------------------task3 end-----------------------task3 end-----------------------task3 end-----------------------task3 end-----------------------task3 end-----------task2执行数据的大量导入或者导出执行完毕,看异步结果task2=49995000task2导入或者导出完成可以看出,task1 和task3先执行了,并且方法在没有等待task2的情况下,直接结束了。
异步的task2另开了一个线程,自己在执行。和主线程已经无关了。
不过,这种在eclipse中以deubug模式是看不出来的。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文介绍了Spring@Async异步线程池用法总结,分享给大家,希望对大家有帮助1.TaskExecutorspring异步线程池的接口类,其实质是Java.
在使用多线程的时候有时候我们会使用java.util.concurrent.Executors的线程池,当多个线程异步执行的时候,我们往往不好判断是否线程池中所
从Java5开始,Java提供了自己的线程池。线程池就是一个线程的容器,每次只执行额定数量的线程。java.util.concurrent.ThreadPool
线程池技术在并发时经常会使用到,java中的线程池的使用是通过调用ThreadPoolExecutor来实现的。ThreadPoolExecutor提供了四个构
本文实例为大家分享了java线程池实现批量下载文件的具体代码,供大家参考,具体内容如下1创建线程池packagecom.cheng.webb.thread;im