concurrent.futures性能阐述

python因为其全局解释器锁GIL而无法通过线程实现真正的平行计算。这个论断我们不展开,但是有个概念我们要说明,IO密集型 vs. 计算密集型。

IO密集型:读取文件,读取网络套接字频繁。

计算密集型:大量消耗CPU的数学与逻辑运算,也就是我们这里说的平行计算。

而concurrent.futures模块,可以利用multiprocessing实现真正的平行计算。

核心原理是:concurrent.futures会以子进程的形式,平行的运行多个python解释器,从而令python程序可以利用多核CPU来提升执行速度。由于子进程与主解释器相分离,所以他们的全局解释器锁也是相互独立的。每个子进程都能够完整的使用一个CPU内核。

 

转载于:https://www.cnblogs.com/jinhh/p/10444804.html

### 华中科技大学操作系统课程设计资料 #### 一、项目要求概述 对于华中科技大学的操作系统课程设计,通常会围绕特定主题展开深入研究和实践工作。这类项目的目的是让学生掌握操作系统的内部机制以及开发技能。具体的要求可能包括但不限于以下几个方面: - **需求分析**:明确所选课题的具体功能和技术指标。 - **架构规划**:基于理论知识构建合理的软件体系结构。 - **模块划分**:将整个程序细分为多个独立的功能单元以便于管理和测试。 #### 二、示例代码展示 下面给出一段简单的多线程编程实例来说明如何利用Python创建并管理线程池执行并发任务[^3]: ```python import concurrent.futures import time def task(n): print(f'Thread {n} is running') time.sleep(2) return f'Finished thread {n}' if __name__ == '__main__': with concurrent.futures.ThreadPoolExecutor(max_workers=5) as executor: futures = [executor.submit(task, i) for i in range(5)] for future in concurrent.futures.as_completed(futures): result = future.result() print(result) ``` 此段代码展示了通过`concurrent.futures`库轻松实现多线程处理的能力,在实际操作系统课程设计过程中可以借鉴此类方法完成更复杂的任务调度算法或其他涉及进程/线程控制的应用场景。 #### 三、实验报告模板建议 一份完整的操作系统课程设计实验报告应当遵循一定的格式标准,以下是推荐包含的部分及其简要介绍: - **封面页**:注明学校名称、院系专业班级信息和个人基本信息等内容。 - **摘要部分**:概括总结全文的核心观点及主要贡献点。 - **目录列表**:提供清晰的文章结构指引。 - **正文主体** - *问题描述*:阐述待解决问题背景及相关挑战; - *解决方案*:详细介绍采用的技术路线图与实施方案; - *性能评估*:对比不同策略下的效果差异,并讨论优劣之处; - *结论反思*:归纳研究成果的价值所在并对未来改进方向提出展望。 - **附录材料**:如有必要可附加源码文件或额外参考资料链接等辅助阅读的信息资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值