代码之家  ›  专栏  ›  技术社区  ›  Karel Bílek

如何使perl线程不复制所有变量?

  •  6
  • Karel Bílek  · 技术社区  · 16 年前

    然而,我有相当多的变量数据,我不需要 完全 在节目的那部分。

    全部的 每次我创建一个新线程时。对我来说,这很痛。

    在没有复制的情况下,我应该用什么来创建一个新线程?或者有一些更好的线程实现,它们不会复制所有内容?

    3 回复  |  直到 15 年前
        1
  •  7
  •   Schwern    16 年前

    像语法一样轻松的线程却不是所有的肥肉?使用惊人的 forks 模块!它使用fork和IPC实现了threads接口,使得在子进程之间共享数据变得容易。

        2
  •  4
  •   hobbs    16 年前

    比常规重量级进程更昂贵 . 我首选的解决方案是使用基于事件的框架,如 POE 或 AnyEvent (我使用POE)并使用 POE::Wheel::Run fork_call 任何事件)。以这种方式编写应用程序确实需要更多的前期设计工作,但如果做得好,它将为您提供一些高效的代码。有时我也会写一些简单的代码 fork pipe (或 open '-|' IO::Select waitpid 直接在它自己的事件循环中,但您可能应该认为这是我在perl之前学习过C的一个症状,而不是一个建议。:)

    fork() 通过 使用ithreads ,因此您将在每个服务器上支付相同的ithread创建成本(CPU和内存) 叉 . 在那里 不是吗

        3
  •  3
  •   daxim Fayland Lam    16 年前