枚举类 ExecutorSelectEnum
- 所有已实现的接口:
Serializable,Comparable<ExecutorSelectEnum>,Constable
执行器选择枚举
具体阅读参考 DefaultRequestMessageClientProcessorHook 相关源码
可将枚举设置到
引用无效
HeadMetadata#setExecutorSelect(ExecutorSelectEnum)
中。框架会在执行 action 前,根据 ExecutorSelectEnum 值来选择对应的执行器。
当为 null 或 userExecutor 时,使用 ExecutorRegion.getUserThreadExecutorRegion() 策略,该策略【保证线程安全】
该策略可以确保同一玩家的 action 请求在同一线程执行器中执行。
当为 userVirtualExecutor 时,使用 ExecutorRegion.getUserVirtualThreadExecutorRegion() ()} 策略,该策略【不保证线程安全】
该策略使用虚拟线程执行 action 请求,如果你能确定你的某些 action 执行较为耗时,且不需要保证线程的,可以使用该策略。
当为 currentThread 时,不使用任何线程执行器,而是在 netty 线程中执行 action 请求;该策略【不保证线程安全】
(具体可阅读 RequestMessageClientProcessor、DefaultRequestMessageClientProcessorHook 相关源码)
customExecutor 则是预留给开发者的,如果框架提供的以上策略都满足不了业务的,可以考虑扩展 RequestMessageClientProcessorHook 接口
- 作者:
- 渔民小镇
- 另请参阅:
- 日期:
- 2023-12-19
-
嵌套类概要
从类继承的嵌套类/接口 java.lang.Enum
Enum.EnumDesc<E extends Enum<E>> -
枚举常量概要
枚举常量枚举常量说明netty 线程中执行 action 请求预留给开发者的在用户线程执行器中执行在虚拟线程执行器中执行 -
方法概要
修饰符和类型方法说明static ExecutorSelectEnum返回带有指定名称的该类的枚举常量。static ExecutorSelectEnum[]values()返回包含该枚举类的常量的数组, 顺序与声明这些常量的顺序相同
-
枚举常量详细资料
-
userExecutor
在用户线程执行器中执行- 另请参阅:
-
userVirtualExecutor
在虚拟线程执行器中执行- 另请参阅:
-
currentThread
netty 线程中执行 action 请求 -
customExecutor
预留给开发者的
-
-
方法详细资料
-
values
返回包含该枚举类的常量的数组, 顺序与声明这些常量的顺序相同- 返回:
- 包含该枚举类的常量的数组,顺序与声明这些常量的顺序相同
-
valueOf
返回带有指定名称的该类的枚举常量。 字符串必须与用于声明该类的枚举常量的 标识符完全匹配。(不允许有多余 的空格字符。)- 参数:
name- 要返回的枚举常量的名称。- 返回:
- 返回带有指定名称的枚举常量
- 抛出:
IllegalArgumentException- 如果该枚举类没有带有指定名称的常量NullPointerException- 如果参数为空值
-