JVM中创建多个Redisson RTopic对象会生成多少个线程
Redisson多RTopic实例线程创建规则
首先明确:你提到的官方文档中“单个RTopic对象的所有监听器分配16个线程”的描述,对应的是Redisson默认全局共享的RTopic监听器线程池大小,并非每个RTopic都会独立创建16个线程,具体总线程数分两种场景判断:
场景1:使用默认配置创建RTopic
- 所有RTopic实例共享同一个全局公共监听器线程池,默认大小为16个线程
- 无论你创建2个还是更多RTopic对象,总共有且仅有16个线程负责处理所有RTopic的所有监听器的消息回调逻辑,不会为每个RTopic单独创建新线程
场景2:创建RTopic时指定独立自定义线程池
- 如果你通过
redisson.getTopic("频道名", 自定义线程池实例)的方式为每个RTopic绑定了独立的线程池,总线程数为所有绑定的自定义线程池的大小之和 - 示例:为2个RTopic分别指定了大小为8、10的独立线程池,总线程数即为8+10=18个
提示:默认的16个共享线程仅用于处理RTopic的消息回调,不会和Redisson自身的网络IO线程、定时任务线程等其他组件的线程混用。
内容的提问来源于stack exchange,提问作者RAm Prasad
相关产品推荐
相关产品推荐

