WEB开发网
开发学院软件开发Python 使用 Python 实现多进程 阅读

使用 Python 实现多进程

 2010-09-22 11:23:22 来源:WEB开发网   
核心提示: $sudocp/etc/snmp/snmpd.conf/etc/snmp/snmpd.conf.bak.testing$sudoecho"rocommunitypublic">/etc/snmp/snmpd.conf$sudosnmpd这将有效地备份您的配置,生成

      $ sudo cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.bak.testing 
      $ sudo echo "rocommunity public" > /etc/snmp/snmpd.conf 
      $ sudo snmpd 
     

这将有效地备份您的配置,生成一个新配置,然后重新启动 snmpd。步骤与许多 UNIX 平台类似,但步骤 3 是除外,该步骤需要重新启动 snmpd,或发送一个 HUP。如果希望 OS X 在启动后永久运行 snmpd,那么可以按如下所示编辑这个 plist 文件:

/System/Library/LaunchDaemons/org.net-snmp.snmpd.plist     <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD 
PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
plist version="1.0"> 
<dict> 
 <key>Disabled</key> 
   <false/>   
 <key>KeepAlive</key>   
 <true/>   
 <key>Label</key>   
 <string>org.net-snmp.snmpd</string>   
 <key>OnDemand</key>   
 <false/>   
 <key>Program</key>   
 <string>/usr/sbin/snmpd</string>   
 <key>ProgramArguments</key>   
 <array>     
 <string>snmpd</string> 
     <string>-f</string>   
 </array>   
 <key>RunAtLoad</key>   
 <true/>   
 <key>ServiceIPC</key>   
 <false/> 
</dict> 
</plist> 
        

如果希望对多台机器进行测试,那么使用下面的内容替换主机行就可以轻松执行修改:

hosts = ["192.168.1.100", SnmpSession(DestHost="example.com", Community="mysecret"), 
"example.net", "example.org"] 

运行作业的 worker 函数将获得两个字符串形式的主机名和完整的 SnmpSession 对象。

结束语

官方文档与多进程库一样有用,您应当特别关注其中提到的以下这些事项:避免共享状态;最好显式地连接所创建的进程;尽量避免终止具有共享状态的进程;最后确保在连接前删除队列中的所有队列项,否则将出现死锁。官方文档中提供了有关最佳实践的更多详细信息,因此建议您阅读 参考资料 小节中的编程资源指南。

除了以上的注意事项之外,多进程也是 Python 编程语言的一大增强。尽管 GIL 对线程的限制曾经被认为是一个弱点,但是通过包含强大灵活的多进程库,Python 不仅弥补了这个弱点,而且还得到了增强。非常感谢 David Goodger 担任本文的技术审校!

上一页  2 3 4 5 6 7 

Tags:使用 Python 实现

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接