线程助手 - ThreadUtil

    我们来看看 线程助手 -

    给定一个待解析的 list,设定每个线程执行多少条 eachSize,传入一些额外的参数 paramsMap,使用自定义的 partitionRunnableBuilder,自动构造多条线程并运行.

    适用场景:

    比如同步库存,一次从MQ或者其他接口中得到了5000条数据,如果使用单线程做5000次循环,势必会比较慢,并且影响性能; 如果调用这个方法,传入eachSize=100, 那么自动会开启5000/100=50 个线程来跑功能,大大提高同步库存的速度

    其他的适用场景还有诸如同步商品主档数据,同步订单等等这类每个独立对象之间没有相关联关系的数据,能提高执行速度和效率

    对于以下代码:模拟10个对象/数字,循环执行任务(可能是操作数据库等)

    统计总耗时时间 需要 use time:

    此时你可以调用此方法,改成多线程执行:

    统计总耗时时间 需要 use time:

    对于上述的case,如果将 eachSize 参数由2 改成1, 统计总耗时时间 需要 use time:

    说明:

    • 线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性;
    • 对于参数 paramsMap 的使用:比如你需要拿到最终每条数据执行的结果,以便后续进行处理(比如对失败的操作再次执行或者发送汇报邮件等)

    输出结果:

    2.创建指定数量 threadCount 的线程,并执行

    方法Description
    void execute(Runnable runnable,int threadCount)创建指定数量 threadCount 的线程,并执行.

    2.1 void execute(Runnable runnable,int threadCount)

    创建指定数量 threadCount 的线程,并执行.