Class CountdownMultiThreadRunner

java.lang.Object
tech.riemann.nif.utils.thread.MultiThreadRunner
tech.riemann.nif.utils.thread.CountdownMultiThreadRunner

public class CountdownMultiThreadRunner extends MultiThreadRunner
基于CountDownLatch的多线程执行器

该类继承自MultiThreadRunner,使用CountDownLatch来实现多线程的同步执行

主要功能是通过指定数量的线程并行执行给定的JobRunner任务,并等待所有线程完成

实现原理: 1. 创建一个计数器为threads的CountDownLatch对象 2. 为每个线程配置索引、总线程数、JobRunner实例和CountDownLatch对象 3. 启动所有线程 4. 主线程阻塞等待直到所有线程完成执行

Author:
Kerbores(kerbores@riemann.tech)
  • Constructor Details

    • CountdownMultiThreadRunner

      public CountdownMultiThreadRunner()
  • Method Details

    • run

      public void run(JobRunner jobRunner, int threads) throws InterruptedException
      使用指定数量的线程并行执行给定的JobRunner任务. 本方法通过创建一个计数器为threads的CountDownLatch对象,来同步等待所有线程完成执行。 对于每一个线程,将通过RunThread的builder方法配置其索引、总线程数、JobRunner实例和CountDownLatch对象, 然后构建并启动线程。所有线程启动后,主线程将通过调用CountDownLatch的await方法, 阻塞等待直到所有线程完成执行,从而确保整体任务的同步性。
      Overrides:
      run in class MultiThreadRunner
      Parameters:
      jobRunner - 要执行的JobRunner实例.
      threads - 线程池中线程的数量.
      Throws:
      InterruptedException - 如果在等待过程中被中断.