gpt4 book ai didi

delphi - 为什么 OmniThreadLibrary 限制为 60 个线程,而 .Net 的限制是 32768?

转载 作者:行者123 更新时间:2023-12-03 15:43:38 27 4
gpt4 key购买 nike

我最近比较了 .NET 中的 OmniThreadLibrary 和 ThreadPool,我发现 Omni 在最大线程数方面受到更多限制 - 允许 60 - 而 .NET 最多可以达到32768 在 .NET 4.0 中。

为什么有这样的限制?

最佳答案

这是一个历史性的选择,曾经可能会被取消。限制仅存在于线程池实现上。

the website上给出了解释,说明以下内容:

The limitation of 60 concurrent threads only applies to the thread pool. Thread pool is designed for fast execution of many small requests, not as a storage for rarely-active threads.

You can just skip thread pool and use OTL tasks directly. That way you can create many hundreds of them.

造成此限制的原因是,[OtlTask​​Control]TOmniTaskExecutor.WaitForEvent 内部使用了具有此限制的 MsgWaitForMultipleObjectsEx。如果确实需要具有超过 60 个并发运行线程的任务池,则可以绕过此限制。

关于delphi - 为什么 OmniThreadLibrary 限制为 60 个线程,而 .Net 的限制是 32768?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13458029/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com