gpt4 book ai didi

multithreading - Perl 线程 : share GLOB between threads

转载 作者:行者123 更新时间:2023-12-04 06:44:01 25 4
gpt4 key购买 nike

我尝试用 Perl 制作一个并行处理网络服务器。

监听不是纯套接字 - 所以没有文件句柄,它是一个实现 HTTP 服务器(GLOB)的对象。

接受后,我再次为客户端连接获得一个 GLOB。

因为 GLOB,我无法将它传递给工作线程 vis thead::shared。

我可以动态创建踏板并通过参数将其提供给它们。但是创建线程对性能不利,所以我喜欢有一个固定的已经在等待的工作线程池。

那么如何以一种优雅的方式将 GLOB 传递给已经运行的线程呢?序列化到数据库、文件、IPC 等中效率不高。

当然,我可以做一个大的重新设计(fork、IPC、socket,...),但这不是问题所在。

谢谢!

最佳答案

好吧,如果没有一些示例代码,很难说得更具体。

但是将东西交给工作人员的标准方法是使用 Thread::Queue

如果它只是一个文件描述符,你可以入队它。如果它有点复杂(例如对象或哈希),您可以使用 Storablefreeze/thaw。你可能正在看那个,因为你似乎在谈论一个对象。

但我不会太多担心您的效率问题 - 它可能没有您想象的那么重要。您是否确定要分析代码?

关于multithreading - Perl 线程 : share GLOB between threads,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48622314/

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