Queue Type - ZjzMisaka/PowerThreadPool.zh-CN.Wiki GitHub Wiki

先进先出 | 后进先出

通过设置 QueueType, 你可以决定线程池是以先进先出 (FIFO) 还是后进先出 (LIFO) 的方式运行, 以满足各种业务需求.
默认值是 FIFO.

powerPool.PowerPoolOption = new PowerPoolOption()
{
    QueueType = QueueType.LIFO,
};

自定义

如果设置了 PowerPoolOption.CustomQueueFactory, 无论是否设置了 QueueType, PowerThreadPool 都会使用自定义队列类型的实例来管理工作项.
自定义队列类型必须继承自 IStealablePriorityCollection<string> 接口, 该接口包含以下三个函数.

函数

在集合中设置一个具有指定优先级的项.

void Set(T item, int priority);

从集合中检索并移除优先级最高的项.
该函数通常由所有者线程调用以获取下一个工作.

T Get();

从集合中窃取并移除优先级最低的项.
该函数通常由其他线程调用, 以从所有者线程中窃取工作.

T Steal();

从集合中丢弃优先级最低的项.

T Discard();
⚠️ **GitHub.com Fallback** ⚠️