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();