线程异步处理

Posted IT的鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程异步处理相关的知识,希望对你有一定的参考价值。

 ExecutorService executorService = Executors.newSingleThreadExecutor();
        executorService.execute(() -> {
            try {
                ObjectUtils.ifPresent(planList, list -> {
                    for (RFCPlanEntity entity : list) {
                        String status = entity.getStatus();
                        List<RFCUserEntity> implementerList = entity.getImplementer();
                        ObjectUtils.ifTrue("Implement".equals(status), implementerList, implementer -> {
                            rfcScoreService.queryAspAndSave(implementer);
                        });
                    }
                });
            } catch (ApplicationException e) {
                e.printStackTrace();
            }
        });

@Configuration
public class SchedulingConfiguration implements SchedulingConfigurer {

    public static int count = 0;

    @Override
    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
        //默认是一个线程
        taskRegistrar.setScheduler(Executors.newScheduledThreadPool(10));
//        taskRegistrar.setScheduler(new ScheduledThreadPoolExecutor(Runtime.getRuntime().availableProcessors(),
//                new ThreadFactory() {
//                    @Override
//                    public Thread newThread(Runnable r) {
//                        return new Thread(r, "my-schedule-" + ++count);
//                    }
//                }));
    }
}

以上是关于线程异步处理的主要内容,如果未能解决你的问题,请参考以下文章

求一个异步处理消息的方法

第十次总结 线程的异步和同步

C#多线程开发-处理异步操作中的异常

线程代替epll实现协程的原理(yield调用next时的函数使用其他线程进行处理,不影响主线程继续运行,next异步处理线程处理后使用send传回处理结果)

初识异步并发处理纯代码及Demo

进程线程同步异步