gpt4 book ai didi

python - 我应该使用 fork 还是线程?

转载 作者:太空狗 更新时间:2023-10-29 20:37:35 25 4
gpt4 key购买 nike

在我的脚本中,我有一个function foo,它基本上使用pynotify 在一段时间间隔(比如 15 分钟)后重复通知用户某事。

def foo:
while True:
"""Does something"""
time.sleep(900)

我的主脚本必须与用户交互并做所有其他事情,所以我不能调用 foo() 函数。直接。

Whats the better way of doing it and why? Using fork or threads?

最佳答案

我不会告诉您使用哪一个,但以下是每个的一些优点:

线程 可以比进程启动得更快,而且线程比进程使用更少的操作系统资源,包括内存、文件句柄等。线程还为您提供了通过共享变量进行通信的选项(尽管许多会说这与其说是优势,不如说是劣势 - 见下文)。

进程每个进程都有自己独立的内存和变量,这意味着进程通常通过相互发送消息进行通信。 这比让线程通过共享内存进行通信更容易正确进程也可以真正并发运行,因此如果您有多个 CPU 内核,您可以保留所有他们忙于使用流程。在 Python* 中,global interpreter lock防止线程大量使用多个内核。


* - 即 CPython,如果您转到 http://python.org,您将获得 Python 的实现并下载 Python。其他 Python 实现(例如 Jython )不一定禁止 Python 同时在多个 CPU 上运行线程。感谢@EOL 的澄清。

关于python - 我应该使用 fork 还是线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2482926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com