不二如是 发表于 2025-3-12 12:00:00

「Python」到底有没有「多线程」??



在 Python 中,可以通过标准库 threading 模块来实现多线程编程。

threading 模块提供了线程的创建、启动、同步(如锁、信号量等)等功能,使用起来相对简单。

在线学习:

https://www.bilibili.com/video/BV1EPQVYuEWG

示例代码:

import threading

def task(name):
    print(f"Task {name} is running")

# 创建线程
thread1 = threading.Thread(target=task, args=("Thread 1",))
thread2 = threading.Thread(target=task, args=("Thread 2",))

# 启动线程
thread1.start()
thread2.start()

# 等待线程完成
thread1.join()
thread2.join()
GIL 的影响

尽管 Python 支持多线程,但 GIL 限制了 Python 线程的并行执行。

GIL 是一个机制,确保在任何时刻只有一个线程可以执行 Python 字节码。

这意味着即使在多核 CPU 上,Python 的多线程也无法实现真正的并行计算。

sunshine_8205 发表于 2025-3-12 13:56:37

{:5_94:}

不二如是 发表于 2025-3-12 15:01:44

感谢分享,朕学到了!!!

lscp 发表于 2025-3-12 21:25:54

感谢分享,朕学到了!!!

gainer 发表于 2025-3-13 09:25:15

asyncio
threading
multiprocessing
都是些啥?有啥联系和区别?

happyweeks365 发表于 2025-3-13 10:08:28

Python确实支持多线程编程,但受全局解释器锁(GIL)限制。GIL使得同一时刻只有一个线程执行字节码,这导致CPU密集型任务无法真正并行。但对于IO密集型任务(如网络请求/文件操作),多线程仍能有效提升效率。建议在需要并发处理时根据任务类型选择多线程、多进程或异步编程方案。

不二如是 发表于 2025-3-13 10:55:11

happyweeks365 发表于 2025-3-13 10:08
Python确实支持多线程编程,但受全局解释器锁(GIL)限制。GIL使得同一时刻只有一个线程执行字节码,这导致 ...

{:10_275:}

player-none 发表于 2025-3-13 17:26:54

gainer 发表于 2025-3-13 09:25
asyncio
threading
multiprocessing


Asyncio异步
threading线程
multiprocessing进程

大同小异(至少对于使用者而言)

系统层面似乎相差很大

player-none 发表于 2025-3-13 17:28:31

自己对Threading线程的一个补充https://fishc.com.cn/thread-248823-1-1.html

康小泡 发表于 2025-3-14 17:16:28

感谢分享,朕学到了!!!
页: [1]
查看完整版本: 「Python」到底有没有「多线程」??