模块 org.redkale
程序包 org.redkale.net

类 WorkThread

  • 所有已实现的接口:
    Runnable, Executor
    直接已知子类:
    AsyncIOThread

    public class WorkThread
    extends Thread
    implements Executor
    协议处理的自定义线程类

    详情见: https://redkale.org

    作者:
    zhangjx
    • 字段详细资料

      • DEFAULT_WORK_POOL_SIZE

        public static final int DEFAULT_WORK_POOL_SIZE
    • 方法详细资料

      • currentWorkThread

        public static WorkThread currentWorkThread()
        当前WorkThread线程,不是WorkThread返回null
        返回:
        WorkThread线程
      • createWorkExecutor

        public static ExecutorService createWorkExecutor​(int threads,
                                                         String threadNameFormat)
        创建线程池,当前JDK若支持虚拟线程池,返回虚拟线程池
        参数:
        threads - 线程数
        threadNameFormat - 格式化线程名
        返回:
        线程池
      • createExecutor

        public static ExecutorService createExecutor​(int threads,
                                                     String threadNameFormat)
        创建线程池
        参数:
        threads - 线程数
        threadNameFormat - 格式化线程名
        返回:
        线程池
      • execute

        public void execute​(Runnable command)
        按以下优先级顺序的线程池执行给定的任务:
        1、work线程池 2、虚拟线程 3、当前线程
        指定者:
        execute 在接口中 Executor
        参数:
        command - 任务
      • execute

        public void execute​(Runnable... commands)
        按以下优先级顺序的线程池执行给定的任务集合:
        1、work线程池 2、虚拟线程 3、当前线程
        参数:
        commands - 任务集合
      • execute

        public void execute​(Collection<Runnable> commands)
        按以下优先级顺序的线程池执行给定的任务集合:
        1、work线程池 2、虚拟线程 3、当前线程
        参数:
        commands - 任务集合
      • runWork

        public final void runWork​(Runnable command)
        按以下优先级顺序的线程池执行给定的任务:
        1、work线程池 2、虚拟线程 3、当前线程
        与execute的区别:子类AsyncIOThread中execute会被重载,确保优先在IO线程中执行
        参数:
        command - 任务
      • getWorkExecutor

        public ExecutorService getWorkExecutor()
        获取work线程池
        返回:
        work线程池
      • inIO

        public boolean inIO()
        是否IO线程
        返回:
        boolean
        从以下版本开始:
        2.6.0
      • inCurrThread

        public boolean inCurrThread()
        判断当前线程是否为当前对象
        返回:
        是否一致
      • inCurrThread

        public boolean inCurrThread​(Thread thread)
        判断当前线程是否为指定线程
        参数:
        thread - 线程
        返回:
        是否一致
      • index

        public int index()
        获取线程池数组下标, 从0开始
        返回:
        int
      • threads

        public int threads()
        获取线程池数组大小,不属于任何数组返回0
        返回:
        int