首页 > 其他分享 >play如何创建多线程任务

play如何创建多线程任务

时间:2023-09-13 15:32:33浏览次数:35  
标签:play int 创建 threadSize BidInfoThreadJob 线程 多线程 data public

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


标签:play,int,创建,threadSize,BidInfoThreadJob,线程,多线程,data,public
From: https://blog.51cto.com/u_16199760/7455668

相关文章

  • QT使用QtCharts创建图表
    QT使用QtCharts创建图表 工程pro文件需要添加QT+=charts注意需要引用#include<QtCharts>QT_CHARTS_USE_NAMESPACE动手实践代码QBarSet*set0=newQBarSet("座席状态");set0->append(6);set0->append(3);set0->append(2);set0->append(1);set0-&g......
  • linux系统创建新的Swap分区
    先执行free-h查看现在的swap分配情况 执行swapon-s查看swap的分区文件执行swapoff/dev/dm-1取消已经挂上的swap文件现在扩充swap到4G,并将swap文件挂到/vm_memory/swapfile上先创建/vm_memory/swapfile,依次执行mkdir/vm_memorytouch/vm_memory/swapfil......
  • Windows使用任务计划程序创建定时运行Python脚本
    最近有需求需要每天定时运行python程序,了解了一些方法。目前觉得Windows系统最简单的方法就是设置任务计划程序定时运行。在Windows中,任务计划程序(TaskScheduler)是一个持久的服务,通常不会因为计算机的关机或重启而停止。一旦你成功创建并配置了定时任务,它将按照你设置的触发条......
  • 创建mixin.js文件,引入表格分页
    //前端分页consttableFrontEndPaging={data(){return{currpage:1,page_size:10,page_list:[10,20,50],currentPage:null,header_cell_style:{background:'#C0C4CC',color:'#303133',borderColor:&#......
  • tyoora 写入注册表创建快捷方式到Windows右键新建栏
    注意,编码方式不要采用utf-8编码,否则会有中文乱码解决方法,使用ANSI编码,保存文件为.reg格式,双击运行,给权限运行新建栏目即生成可新建的Markdown文档文件WindowsRegistryEditorVersion5.00[HKEY_CLASSES_ROOT\.md]@="Typora.exe"[HKEY_CLASSES_ROOT\.md\ShellNew]......
  • 迅为RK3399开发板创建android工程
    打开 AndroidStudio 软件,点击“StartanewAndroidStudioproject”新建一个 NativeC++工程(因为我们要调用本地库,所以要创建这个 C++实例工程),点击“Next”2.填写创建信息,如下图所示。最后点击“finish”,等待几分钟,创建工程完成。3.在开始写代码前先编译一下刚刚创建的工程,确......
  • Java多线程____Executors线程池的使用和架构原理
    1.线程池API类型1.创建一个可重用固定线程数的线程池packagecom.frame.base.thread;importjava.util.concurrent.Executors;importjava.util.concurrent.ExecutorService;/***Java线程:线程池*@authorAdministrator*/publicclassTestExecutors{ publicstati......
  • Java多线程____线程死锁例子
    1:两个任务以相反的顺序申请两个锁,死锁就可能出现2:线程T1获得锁L1,线程T2获得锁L2,然后T1申请获得锁L2,同时T2申请获得锁L1,此时两个线程将要永久阻塞,死锁出现packagecom.zs.test; publicclassDeadLock{ publicstaticStringobjA="objA"; publicstaticStringobjB="ob......
  • Java多线程____生产者与消费者模型
    1.仓库类__:入库和出库的集合 有生产和出货方法packagecom.test.thread;importjava.util.LinkedList;/***@authorAdministrator*仓库类*/publicclassStorage{ //存储集合 privateLinkedList<Object>list=newLinkedList<Object>(); publicvoidruk......
  • Java多线程____线程yield方法介绍
    packagecom.test.thread;publicclassTestYield{ publicstaticvoidmain(String[]args){ TestThreadt1=newTestThread("A_01"); TestThreadt2=newTestThread("B_02"); t1.start(); t2.start(); }}classTestThreadextend......