1.多线程
4种多线程:https://blog.csdn.net/hnd978142833/article/details/80253784
子线程事务与主线程事务是分离的,
子线程事务相互也是分离的,
子线程抛异常给主线程 可以让主线程事务回滚,但是不会影响其他子线程。
springboot子线程调用主线程本类中的方法是不会有事务管理的 ,子线程必须调用sping管理的bean 且此bean开启了事务管理 才会启用事务。
springboot多线程 线程池。
package grp.utils.taskexecutor;
import java.util.concurrent.Executor;
import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.AsyncConfigurer;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;@Configuration
@ComponentScan("grp.utils.taskexecutor")
@EnableAsync // 开启异步任务支持
public class TaskExecutorConfig implements AsyncConfigurer {@Override
public Executor getAsyncExecutor() {
/**
* 创建线程池
* 核心线程数
* 最大线程数
* 队列最大长度
*/
ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
taskExecutor.setCorePoolSize(5);
taskExecutor.setMaxPoolSize(5);
taskExecutor.setQueueCapacity(1000);
taskExecutor.initialize();
return taskExecutor;
}@Override
public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
return null;
}
}