- java.lang.Object
-
- java.lang.Thread
-
- org.redkale.net.WorkThread
-
- 直接已知子类:
AsyncIOThread
public class WorkThread extends Thread implements Executor
协议处理的自定义线程类详情见: https://redkale.org
- 作者:
- zhangjx
-
-
嵌套类概要
-
从类继承的嵌套类/接口 java.lang.Thread
Thread.State, Thread.UncaughtExceptionHandler
-
-
字段概要
字段 修饰符和类型 字段 说明 static int
DEFAULT_WORK_POOL_SIZE
protected ExecutorService
workExecutor
-
从类继承的字段 java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
-
-
构造器概要
构造器 构造器 说明 WorkThread(ThreadGroup g, String name, int index, int threads, ExecutorService workExecutor, Runnable target)
-
方法概要
所有方法 静态方法 实例方法 具体方法 修饰符和类型 方法 说明 static ExecutorService
createExecutor(int threads, String threadNameFormat)
创建线程池static ExecutorService
createWorkExecutor(int threads, String threadNameFormat)
创建线程池,当前JDK若支持虚拟线程池,返回虚拟线程池static WorkThread
currentWorkThread()
当前WorkThread线程,不是WorkThread返回nullvoid
execute(Runnable command)
按以下优先级顺序的线程池执行给定的任务:
1、work线程池 2、虚拟线程 3、当前线程void
execute(Runnable... commands)
按以下优先级顺序的线程池执行给定的任务集合:
1、work线程池 2、虚拟线程 3、当前线程void
execute(Collection<Runnable> commands)
按以下优先级顺序的线程池执行给定的任务集合:
1、work线程池 2、虚拟线程 3、当前线程ExecutorService
getWorkExecutor()
获取work线程池boolean
inCurrThread()
判断当前线程是否为当前对象boolean
inCurrThread(Thread thread)
判断当前线程是否为指定线程int
index()
获取线程池数组下标, 从0开始boolean
inIO()
是否IO线程void
runWork(Runnable command)
按以下优先级顺序的线程池执行给定的任务:
1、work线程池 2、虚拟线程 3、当前线程
与execute的区别:子类AsyncIOThread中execute会被重载,确保优先在IO线程中执行int
threads()
获取线程池数组大小,不属于任何数组返回0-
从类继承的方法 java.lang.Thread
activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, run, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, toString, yield
-
-
-
-
字段详细资料
-
DEFAULT_WORK_POOL_SIZE
public static final int DEFAULT_WORK_POOL_SIZE
-
workExecutor
protected final ExecutorService workExecutor
-
-
构造器详细资料
-
WorkThread
public WorkThread(ThreadGroup g, String name, int index, int threads, ExecutorService workExecutor, Runnable target)
-
-
方法详细资料
-
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
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
-
-