From 49bf182cf82b037fb68c32258e752366134804da Mon Sep 17 00:00:00 2001 From: zj3D Date: Thu, 6 Mar 2025 21:00:36 +0800 Subject: [PATCH] 04 --- B 高性能模式/01 高性能模式.md | 7 ++----- B 高性能模式/多线程的应用场景.md | 7 ++++++- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/B 高性能模式/01 高性能模式.md b/B 高性能模式/01 高性能模式.md index 5f52a81..7d87778 100644 --- a/B 高性能模式/01 高性能模式.md +++ b/B 高性能模式/01 高性能模式.md @@ -8,11 +8,8 @@ ### I/O 层面减少等待时间 -- 异步编程:asyncio 库允许在单线程中处理多个 I/O 操作(实现并发执行),减少等待时间。 -- 多线程:Python的线程切换是由解释器完成,而不是操作系统。切换不仅基于时间间隔,Python的多线程 时间切片间隔可以通过 sys.setswitchinterval() 设置,通常以秒为单位。其他切换触发条件 : - - 当线程等待I/O操作(如网络请求或磁盘读写)时,GIL会被释放,允许其他线程运行。 - - 某些函数(如 time.sleep())会显式释放GIL。 - - 线程主动释放GIL。 +- 异步编程:asyncio 库允许在单线程中处理多个 I/O 操作(实现并发执行),减少等待时间 . +- 多线程:Python的线程切换是由解释器完成,而不是操作系统。切换不仅基于时间间隔. - 批量处理,减少I/O请求数量 diff --git a/B 高性能模式/多线程的应用场景.md b/B 高性能模式/多线程的应用场景.md index a0960d6..8a51e8e 100644 --- a/B 高性能模式/多线程的应用场景.md +++ b/B 高性能模式/多线程的应用场景.md @@ -1,10 +1,15 @@ +Python的多线程时间切片间隔可以通过 sys.setswitchinterval() 设置。其他切换触发条件 : +- 当线程等待I/O操作(如网络请求或磁盘读写)时,GIL会被释放,允许其他线程运行。 +- 某些函数(如 time.sleep())会显式释放GIL。 +- 线程主动释放GIL。 + 异步编程特别适合高并发的 I/O 密集型任务(如 Web 服务器、爬虫、实时通信), 特别是大量并发连接的任务。 对于 **I/O 密集型任务**,**异步编程** 通常比 **多线程** 是更好的选择。 多线程相对编程简单 。 -但,以下场景更适合使用 **多线程**: +以下场景更适合使用 **多线程**: ### 场景:**GUI 应用程序**