我在 perl 中有一个多线程应用程序,我必须依赖几个非线程安全模块,所以我一直在使用 fork()
使用 kill()
编辑进程信号作为消息传递接口(interface)。
问题是信号处理程序有点不稳定(至少可以这么说),并且通常最终会导致进程在不适当的状态下被杀死。
有一个更好的方法吗?
最佳答案
根据您的程序需要做什么,您可以考虑使用 POE ,这是一个用于具有用户空间线程的多线程应用程序的 Perl 框架。它很复杂,但优雅而强大,可以通过将事件限制在单个 Perl 解释器线程中来帮助您避免使用非线程安全模块。
有用的入门资源:
另外还有数百个预建的POE components您可以使用它来组装成一个应用程序。
关于perl - 有没有办法在 Perl 中托管进程(即实际有效的线程替换)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/138696/