gpt4 book ai didi

multithreading - 当线程池耗尽时会发生什么?

转载 作者:行者123 更新时间:2023-12-04 20:11:13 24 4
gpt4 key购买 nike

在学校最近的一门关于网络/操作系统的类(class)中,我了解了线程池。现在他的基本功能非常简单,我理解这一点。

但是,我书中没有说明的是,当线程池耗尽时会发生什么?例如,您有一个包含 20 个线程的池,并且您有 20 个连接的客户端。另一个客户端尝试连接,但池中没有剩余线程,然后会发生什么?客户端是否需要排队?系统是否创建另一个线程放入池中?还有什么?

最佳答案

答案在很大程度上取决于您的语言、操作系统和池实现。

what happens when the thread pool is exhausted? Another client tries to connect but there's no threads left in the pool, what happens then? Does the client go in a queue?



通常在服务器情况下,它取决于套接字设置。要么套接字连接被操作系统排队,要么连接被拒绝。这通常不由线程池处理。在 ~unix 操作系统中,这个队列或“积压”由 listen method 处理。 .

Does the system make another thread to put in the pool?



这取决于线程池。有些池是固定大小的,因此不会添加更多线程。其他线程池是“缓存”线程池,因此它将重用一个空闲线程或在没有可用线程时创建一个新线程。许多 Web 服务器在其池中设置了最大线程数,因此远程用户不会通过启动过多的并发连接来破坏系统。

关于multithreading - 当线程池耗尽时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17089498/

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