应用场景:需要多线程同时操作数据库,进行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方法中取出,然后传到任务重区分线程