Custom

@SerialName(value = "custom")
data class Custom(val coreThreads: Int, val maxThreads: Int? = null, val keepAliveMillis: Long? = null, val name: String? = null, val key: String? = null, val demote: DispatcherConfiguration? = null) : DispatcherConfiguration(source)

使用自定义线程属性作为构建调度器的配置。 不支持自定义调度器的平台会降级为 demote,降级目标默认为 Default

自定义调度器在支持的情况下始终为守护线程。

Constructors

Link copied to clipboard
constructor(coreThreads: Int, maxThreads: Int? = null, keepAliveMillis: Long? = null, name: String? = null, key: String? = null, demote: DispatcherConfiguration? = null)

Properties

Link copied to clipboard

核心线程数。应当至少为 1。 必填属性,在支持的平台中,可能会作为固定线程的数量或动态线程的最小保持数量。 当平台不支持 maxThreads 时,coreThreads 作为固定线程数量(例如 native 平台)。

Link copied to clipboard

如果平台不支持自定义调度器,则使用 demote 降级。 默认为 null

Link copied to clipboard
open override val dispatcher: CoroutineDispatcher?

得到配置内最终的调度器信实例。 如果配置信息不足或其他各种原因也可能不会有调度器产生。

Link copied to clipboard
val keepAliveMillis: Long? = null

maxThreads 大于 coreThreadsmaxThreads 在平台中被支持时(例如 JVM 平台), keepAliveMillis 代表在 coreThreads 数量之外额外扩充出来的空闲线程的存活时间。

Link copied to clipboard
val key: String? = null

如果此配置类的使用者支持,则可以以 key 为标识在一定范围内共享相同 key 的配置所产生的调度器。 为 null 时不会共享。

Link copied to clipboard
val maxThreads: Int? = null

最大线程数。当调度器达到可临时扩容状态时的线程数量上限。 应当至少与 coreThreads 相等。默认为 null。在平台支持的情况下, null 代表与 coreThreads 相等。 平台不支持 maxThreads 的情况下会被忽略(例如 native 平台)。

Link copied to clipboard
val name: String? = null

如果平台支持,则作为调度器的名称(native 平台)或线程组及线程的前缀名(JVM平台), 如果为 null 则会使用一个内部生成或默认的名称。