gpt4 book ai didi

c - 多线程 Web 服务器的线程池

转载 作者:太空宇宙 更新时间:2023-11-04 03:52:15 25 4
gpt4 key购买 nike

我想写一个多线程的网络服务器,我应该使用线程池。我可以为线程池使用队列吗?如果可以,你建议队列是循环的还是双链表的?哪一个更适合我的网络服务器实现?如果队列不是一个好的选择,线程池推荐什么数据结构?

最佳答案

您可以使用任何线程安全的队列。但是如果那个 web 服务器要承受重负荷,使用基于数组的无锁队列可能会更好,这样你有时只需要分配数组,(michael 和 scott 的队列是基于节点的,等等天真的实现你必须在每次入队时分配节点,并在出队时释放它们)。(所以回答一下,我认为基于数组的队列(而不是双端队列)更好,因为它们在不同的任务中是公平的。)

我建议你使用队列,而不是双端队列。 (尽管工作窃取使用双端队列,但您希望公平地接待客户。所以双端队列,因为 ot 的行为就像一个堆栈,第一个请求将是最后一个回答。)您可以查看此页面以获取无锁并发队列(我认为这是最先进的) http://mcg.cs.tau.ac.il/projects/lcrq/

关于c - 多线程 Web 服务器的线程池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19779999/

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