Class SyncFinisher

java.lang.Object
org.aoju.bus.core.thread.SyncFinisher
All Implemented Interfaces:
Closeable, AutoCloseable

public class SyncFinisher extends Object implements Closeable
线程同步结束器 在完成一组正在其他线程中执行的操作之前, 它允许一个或多个线程一直等待 不能保证同时开始
Since:
Java 17+
Author:
Kimi Liu
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    class 
    工作者,为一个线程
  • Constructor Summary

    Constructors
    Constructor
    Description
    SyncFinisher(int threadSize)
    构造
  • Method Summary

    Modifier and Type
    Method
    Description
    增加定义的线程数同等数量的worker
    addWorker(Runnable runnable)
    增加工作线程
    增加工作线程
    void
    清空工作线程对象
    void
     
    long
    剩余任务数
    setBeginAtSameTime(boolean isBeginAtSameTime)
    设置是否所有worker线程同时开始
    void
    执行此方法后如果不再重复使用此对象,需调用stop()关闭回收资源
    void
    start(boolean sync)
    执行此方法后如果不再重复使用此对象,需调用stop()关闭回收资源
    void
    结束线程池。此方法执行两种情况: 执行start(true)后,调用此方法结束线程池回收资源 执行start(false)后,用户自行判断结束点执行此方法
    void
    stop(boolean isStopNow)
    结束线程池。此方法执行两种情况: 执行start(true)后,调用此方法结束线程池回收资源 执行start(false)后,用户自行判断结束点执行此方法

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • SyncFinisher

      public SyncFinisher(int threadSize)
      构造
      Parameters:
      threadSize - 线程数
  • Method Details

    • setBeginAtSameTime

      public SyncFinisher setBeginAtSameTime(boolean isBeginAtSameTime)
      设置是否所有worker线程同时开始
      Parameters:
      isBeginAtSameTime - 是否所有worker线程同时开始
      Returns:
      this
    • addRepeatWorker

      public SyncFinisher addRepeatWorker(Runnable runnable)
      增加定义的线程数同等数量的worker
      Parameters:
      runnable - 工作线程
      Returns:
      this
    • addWorker

      public SyncFinisher addWorker(Runnable runnable)
      增加工作线程
      Parameters:
      runnable - 工作线程
      Returns:
      this
    • addWorker

      public SyncFinisher addWorker(SyncFinisher.Worker worker)
      增加工作线程
      Parameters:
      worker - 工作线程
      Returns:
      this
    • start

      public void start()
      执行此方法后如果不再重复使用此对象,需调用stop()关闭回收资源
    • start

      public void start(boolean sync)
      执行此方法后如果不再重复使用此对象,需调用stop()关闭回收资源
      Parameters:
      sync - 是否阻塞等待
    • stop

      public void stop()
      结束线程池。此方法执行两种情况:
      1. 执行start(true)后,调用此方法结束线程池回收资源
      2. 执行start(false)后,用户自行判断结束点执行此方法
    • stop

      public void stop(boolean isStopNow)
      结束线程池。此方法执行两种情况:
      1. 执行start(true)后,调用此方法结束线程池回收资源
      2. 执行start(false)后,用户自行判断结束点执行此方法
      Parameters:
      isStopNow - 是否立即结束所有线程(包括正在执行的)
    • clearWorker

      public void clearWorker()
      清空工作线程对象
    • count

      public long count()
      剩余任务数
      Returns:
      剩余任务数
    • close

      public void close() throws IOException
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Throws:
      IOException