如何实现利用线程批量保存java bean对象
1- 首先写一个线程对象
创建的线程的方式其实是三种,不过也可以说是4种,或者5种
① 就是使用 extendsThread
② 实现 implements Runnable,然后重写run()
③ 实现 implements Callable
代码 Bean 是一个java对象
public class BeanThreadPool implements Runnable{
private ArrayList<Bean> Beanlist ;
public BeanThreadPool(ArrayList<Bean> Beanlist)
{
this.Beanlist=Beanlist;
}
@Override
public void run() {
for (int i = 0; i < Beanlist.size(); i++) {
Bean bean= Beanlist.get(i);
BeanService beanService = SpringContextUtils.getBean(BeanService.class);
beanService.save(bean);
}
}
}
2- 创建线程池
// 线程工厂
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder().setNameFormat("demo-pool-%d").build();
ExecutorService threadPool = new ThreadPoolExecutor(
2, //核心线程数
10, //线程池最大线程数
0L,//空闲线程存活时间
TimeUnit.MILLISECONDS,//空闲线程存活时间单位
new LinkedBlockingQueue<Runnable>(1024), //工作队列,此处使用基于链表的无界阻塞队列
namedThreadFactory, //线程工厂
new ThreadPoolExecutor.AbortPolicy()//拒绝策略,
);
3- 保存对象
Bean bean = new Bean();
//给Bean对象的属性赋值
ArrayList<Bean> beans= new ArrayList<>();
beans.add(bean);
threadPool.execute(new BeanThreadPool(beans));