应用场景:需要多线程同时操作数据库,进行insrt操作
准备:
1、要将数据拆分开来,具备唯一的id主键,在insert之前判断是否已经存在数据库
2、创建一个线程类
public class BidInfoThread extends Thread {
private int data;
public BidInfoThread(int data) {
this.data = data;
}
@Override
public void run() {
相应的任务
}
}
3、创建一个job类
public class BidInfoThreadJob extends Job {
private int threadSize;
public BidInfoThreadJob(int threadSize) {
this.threadSize = threadSize;
}
@Override
public void doJob() throws Exception {
List<BidInfoThread> threads = new ArrayList<>();
// 创建线程并添加到线程列表
for (int i = 0;i<threadSize;i++) {
BidInfoThread thread = new BidInfoThread(i);
threads.add(thread);
thread.start();
}
// 等待所有线程执行完成
for (BidInfoThread thread : threads) {
thread.join();
}
}
}
4、创建controller
public class BidResultTest extends Controller {
public static void bidInfoThread() {
int dataList = 10;
BidInfoThreadJob job = new BidInfoThreadJob(10);
job.now();
}
}
5、访问http://locahost:9000/BidResultTest/bidInfoThread即可启动10个线程
注意:
1、datalist控制启动多少线程
2、可以将data参数放到BidInfoThread.run方法中取出,然后传到任务重区分线程