python - Python 中的线程

标签 python multithreading

我是线程的新手,想知道为各种任务生成大量线程是否不好(在服务器环境中)。与更线性的编程相比,线程是否占用更多的内存/CPU?

最佳答案

如果你想使用多线程,你必须考虑多方面的事情:

  1. 您只能同时运行#processors 个线程。 (显而易见)
  2. 在 Python 中,每个线程都是一个“内核线程”,通常占用大量资源(Linux 上默认为 8 MB 堆栈)
  3. Python 有一个全局解释器锁,这意味着一次只能处理一个 python 指令,而与处理器的数量无关。但是,如果您的线程之一等待 IO,则会释放此锁。

我从中得出的结论:

  1. 如果您正在进行 IO(Turbogears、Twisted)或使用正确编码的扩展模块 (numpy),请使用线程。
  2. 如果您想同时执行 python 代码,请使用进程(使用多进程模块最简单)

关于python - Python 中的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/939754/

相关文章:

c++ - 将输出流对象和其他参数传递给多个线程

java - 从 PipedOutputStream 到 PipedInputStream 的冒泡 IOException

c++ - 如何使用 pthreads 在 solaris 上增加 c++ 线程堆栈大小?

java - 我如何知道/感觉到多线程对我的程序有帮助

Python 将以 Base64 编码的 IP 地址转换为十进制 IP 地址

python - pyautogui 的导入错误

c# - 如何确保使用 Task.Run 创建新线程?

python - 相当于 python 3 中的 find coreutil 命令递归返回目录结构中的所有文件和文件夹?

Python pandas - 在缺少日期的情况下按组有效地在滚动窗口上应用函数

python - 使用scrapy提取所有分页链接到页面?