DefaultAsyncDispatcherOrNull
使用在非协程环境下的异步API(例如 runInAsync )中的默认调度器。 会在首次被获取的时候进行实例化。
默认情况下,DefaultAsyncDispatcherOrNull 等于 null
.
存在部分可配置内容:
属性 | JVM参数 | 默认值 |
---|---|---|
核心线程数 | simbot.runInAsync.dispatcher.coreSize | availableProcessors / 2 |
最大线程数 | simbot.runInAsync.dispatcher.maxSize | availableProcessors * 4 |
维持时间(毫秒) | simbot.runInAsync.dispatcher.keepAliveTime | 60000 |
除了提供调度器的使用,你也可以指定一个从 Dispatchers 中存在的属性。使用如下JVM参数可以覆盖调度器的使用: (参数值不区分大小写)
JVM参数 | 对应值 | 描述 |
---|---|---|
simbot.runInAsync.dispatcher=io | Dispatchers.IO | 使用 Dispatchers.IO 作为默认调度器. |
simbot.runInAsync.dispatcher=default | Dispatchers.Default | 使用 Dispatchers.Default 作为默认调度器. |
simbot.runInAsync.dispatcher=main | Dispatchers.Main | 使用 Dispatchers.Main 作为默认调度器. |
simbot.runInAsync.dispatcher=unconfined | Dispatchers.Unconfined | 使用 Dispatchers.Unconfined 作为默认调度器. |
simbot.runInAsync.dispatcher=forkJoinPool | ForkJoinPool | 使用 ForkJoinPool 作为默认调度器. |
simbot.runInAsync.dispatcher=virtual | VirtualThreadDispatcher | 使用 VirtualThreadDispatcher 作为默认调度器. |
simbot.runInAsync.dispatcher=virtualOrIo | VirtualThreadDispatcher or Dispatchers.IO if virtual thread not supported. | 使用 VirtualThreadDispatcher 作为默认调度器,并在虚拟线程不支持的情况下退化为 Dispatchers.IO |
simbot.runInAsync.dispatcher=forkJoinPool | ForkJoinPool | 使用 ForkJoinPool 作为默认调度器. |
simbot.runInAsync.dispatcher=custom | CustomBlockingDispatcherProvider | (since 3.3.0) 通过 SPI 加载 CustomBlockingDispatcherProvider 并通过其构建 CoroutineDispatcher |