Abh*_*ogi 8 python coding-style
在我的脚本中,我有一个函数foo,它基本上使用pynotify在15分钟的时间间隔后反复通知用户.
def foo:
while True:
"""Does something"""
time.sleep(900)
Run Code Online (Sandbox Code Playgroud)
我的主要脚本必须与用户交互并执行所有其他操作,因此我无法调用foo()函数.直.
什么是更好的方式,为什么?使用fork还是thread?
我不会告诉你使用哪一个,但这里有一些优点:
线程可以比进程更快地启动,并且线程比进程使用更少的操作系统资源,包括内存,文件句柄等.线程还为您提供了通过共享变量进行通信的选项(尽管很多人会说这比一个更不利于优势 - 见下文).
每个进程都有自己独立的内存和变量,这意味着进程通常通过相互发送消息进行通信. 这是很容易做正确地比具有螺纹经由共享存储器通信. 进程也可以真正同时运行,因此如果您有多个CPU核心,则可以让所有进程忙于使用进程.在Python *中,全局解释器锁可以防止线程多次使用多个核心.
* - 也就是说,CPython,如果你去http://python.org并下载Python就可以获得Python的实现.其他Python实现(例如Jython)不一定禁止Python同时在多个CPU上运行线程.感谢@EOL的澄清.
| 归档时间: |
|
| 查看次数: |
5616 次 |
| 最近记录: |