java异步在项目中的使用

/**
 * 测试异步的执行文件上传,可以成功的支持多线程和异步
 * @author he_guanhong
 *
 */
@Component
public class AsyncTaskFileUploadTaskService {

    @Autowired
    private FileUpLoadTaskService fileUpLoadTaskService;

    @Async
    public void excuteAsyncTaskFileUpload(FileOfBillWrap fileOfBillWrap){
        try {
            fileUpLoadTaskService.uploadFileToWuzhong(fileOfBillWrap);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    @Async
    public Future<Boolean> excuteAsyncTaskFileUploadWithResult(FileOfBillWrap fileOfBillWrap){
        boolean result = false;
        try {
            result = fileUpLoadTaskService.uploadFileToWuzhong(fileOfBillWrap);
            return new AsyncResult<Boolean>(result);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return new AsyncResult<Boolean>(result);
    }
}

执行异步任务

                    try {
                        System.out.println("Invoking an asynchronous method. "+ Thread.currentThread().getName());
                        //fileUpLoadTaskService.uploadFileToWuzhong(fileOfBillWrap);
                        /**
                         * Result from asynchronous process - true
                           Invoking an asynchronous method. pool-3-thread-1
                           Continue doing something else. 
                         */
                        Future<Boolean> future = asyncTaskFileUploadTaskService.excuteAsyncTaskFileUploadWithResult(fileOfBillWrap);
                        while (true) {  ///这里使用了循环判断,等待获取结果信息
                            if (future.isDone()) {  //判断是否执行完毕
                                System.out.println("Result from asynchronous process - " + future.get());
                                break;
                            }
                            System.out.println("Continue doing something else. ");
                            Thread.sleep(1000);
                        }
                    } catch (Exception e) {
                        continue;
                    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值