首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >工人MPM下mod_perl中的进程内协调?

工人MPM下mod_perl中的进程内协调?
EN

Stack Overflow用户
提问于 2018-09-20 00:06:28
回答 2查看 0关注 0票数 0

我需要在mod_perl中做一些简单的时区计算。DateTime不是一个选项。我需要做的是通过设置$ ENV {TZ}并使用localtime和POSIX :: mktime轻松完成,但在线程MPM下,我需要确保一次只有一个线程与环境混淆。(我不关心本地时间的其他用途等)

如何使用互斥锁或其他锁定策略来序列化(在非编组意义上)对环境的访问?我看过的文档并不能很好地解释如何为这个用途创建一个互斥锁。也许有些东西,我只是没有了解你如何创建互斥体。

更新:是的,我知道需要使用Env :: C来设置TZ。

EN

Stack Overflow用户

发布于 2018-09-20 08:51:26

如果您使用的是apache 1.3,那么您不需要使用互斥锁。Apache 1.3产生了许多工作进程,每个工作程序执行一个线程。在这种情况下,您可以写:

代码语言:javascript
复制
{
    local $ENV{TZ} = whatever_I_need_it_to_be();

    # Do calculations here.
}

更改变量local意味着它将恢复为块末尾的先前值,但仍会传递到从该块中进行的任何子例程调用。这几乎可以肯定你想要的。由于每个进程都有自己独立的环境,因此您不会使用此技术更改其他进程的环境。

对于apache 2,我不知道它在分叉和线程方面使用的是什么型号。如果它保持相同的方法分离进程并且每个都有一个单独的线程,那么你没问题。

如果apache 2使用诚实的真实线程,那么这不在我的详细知识领域,但我希望另一个可爱的stackoverflow人员可以提供帮助。

一切都是最好的,

代码语言:javascript
复制
Paul
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100000783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档