当前位置: 首页 > news >正文

如何采集网站文章国外 网站源码

如何采集网站文章,国外 网站源码,上海做网站yuanmus,wordpress 地图插件Python 进程池#xff1a;Pool任务调度实现 在现代计算机系统重#xff0c;处理器核心数量的增加为并行计算提供了强大的硬件基础。Python的 multiprocessing 模块中的进程池#xff08;Pool#xff09;机制#xff0c;为开发者提供了 一个高效且易用的并行处理框架。 通…Python 进程池Pool任务调度实现 在现代计算机系统重处理器核心数量的增加为并行计算提供了强大的硬件基础。Python的 multiprocessing 模块中的进程池Pool机制为开发者提供了 一个高效且易用的并行处理框架。 通过进程池可以轻松地将计算密集型任务分配到多个处理器核心上执行显著提升程序的执行效率。 进程池是一种预先创建多个进程实例的并行处理机制。它通过维护一组工作进程避免了频繁创建和销毁进程带来的系统开销。当有新的任务需要执行时进程池会自动 将任务分配给空闲的工作进程实现任务的并行处理。这种机制特别适合需要重复执行相似任务的场景如批量数据处理、并行计算等。 1. 任务调度原理 1.1 任务分配机制 Pool 的任务调度采用了工作队列模式它维护了一个任务队列和结果队列。当我们提交任务时任务会被放入任务队列工作进程会从队列中获取任务并执行执行结果则 被放入结果队列。这个过程是自动进行的开发者无需关系具体的调度细节。 1.2. 进程池管理策略 进程池在创建时就会初始化指定数量的工作进程这些进程在整个池的生命周期内持续存在。当某个进程在执行任务时发生异常进程池会自动创建新的进程来替代它 确保可用进程数量的稳定性。 from multiprocessing import Pool import time import osdef work_function(x):工作函数模拟耗时计算任务print(f进程 {os.getpid()} 开始处理任务 {x})time.sleep(3)result x * xprint(f进程 {os.getpid()} 完成任务 {x})return resultdef main():# 创建进程池使用4个工作进程with Pool(4) as pool:tasks range(10)# 使用 map 方法并行处理任务results pool.map(work_function, tasks)print(所有任务完成,结果, results)if __name__ __main__:1.3 高级任务提交方法 1.3.1 异步任务处理 除了同步的map 方法Pool还提供了异步任务的提交方式。 通过apply_async 和 map_async方法可以实现更灵活的任务调度 from multiprocessing import Pool import time import osdef long_time_task(name):模拟长时间运行的任务print(f运行任务 {name} ({os.getpid()}))time.sleep(2)return f任务 {name} 的结果def process_async_tasks():with Pool(4) as pool:# 使用 apply_async 提交多个任务results []for i in range(5):result pool.apply_async(long_time_task, args(i,))results.append(result)# 获取所有任务结果for result in results:print(f获取结果, result.get(timeout3))if __name__ __main__:start_time time.time()process_async_tasks()end_time time.time()print(f总执行时间: {end_time - start_time:.2f}秒)1.3.2 任务回调机制 Pool 支持异步任务设置回调函数这在处理任务完成后的后续操作时非常有用 from multiprocessing import Pool import time import osdef task(x):执行主要计算任务time.sleep(1)return x * xdef callback_func(result):任务完成后的回调函数print(f任务完成结果为{result})def main_with_callback():with Pool(3) as pool:for i in range(5):pool.apply_async(task, args(i,),callback callback_func)# 等待所有任务完成pool.close()pool.join()if __name__ __main__:start_time time.time()main_with_callback()end_time time.time()print(f总执行时间: {end_time - start_time:.2f}秒) 2.实际应用场景 2.1 批量文件处理系统 from multiprocessing import Pool import time import osdef task(x):执行主要计算任务time.sleep(1)return x * xdef callback_func(result):任务完成后的回调函数print(f任务完成结果为{result})def main_with_callback():with Pool(3) as pool:for i in range(5):pool.apply_async(task, args(i,),callback callback_func)# 等待所有任务完成pool.close()pool.join()if __name__ __main__:start_time time.time()main_with_callback()end_time time.time()print(f总执行时间: {end_time - start_time:.2f}秒)3.性能优化 进程数量的选择对性能有重要影响。一般建议将进程数设置为CPU核心数或略高于核心数。但在IO密集型任务中可以适当增加进程数。过多的进程反而会因为上下文切换导致性能下降。 对于不同类型的任务应选择合适的任务提交方式。计算密集型任务适合使用map方法而IO密集型任务可能更适合使用apply_async。这是因为map方法会阻塞等待所有任务完成而apply_async允许更灵活的任务调度。 在处理大量小任务时应考虑任务分块来减少调度开销。可以将多个小任务合并为一个大任务减少进程间通信的次数 from multiprocessing import Pool import timedef process_chunk(chunk):处理一组任务return [x * x for x in chunk]def chunked_processing(data, chunk_size1000):# 将数据分块chunks [data[i:i chunk_size] for i in range(0, len(data), chunk_size)]with Pool() as pool:# 处理数据块results pool.map(process_chunk, chunks)# 合并结果return [item for sublist in results for item in sublist]# 使用示例 if __name__ __main__:large_data range(10000)result chunked_processing(large_data)
http://www.hkea.cn/news/14533584/

相关文章:

  • 成都做网站设计哪家好有做美食的视频网站么
  • 重庆智慧团建网站登录平台咖啡厅网站开发目标
  • 网站后台fpt中国网站
  • 工信部网站域名查询怎么制作wordpress主题
  • 网站设计开发文档模板下载做网站搞笑口号
  • 电子商务网站建设合同范本佛山网页设计培训
  • 惠州微网站推广方案免费的网站建设一般多少钱
  • 企业网站免费认证wordpress对接微信登录
  • 网站制作网站开发媒体资源
  • 做网站诊断步骤企业网站建站价格
  • 青岛网站备案html网页制作视频教学
  • 制作公司网站步骤wordpress 外贸 开发
  • 网站导航容易做seo推广排名公司
  • 仿卢松松博客网站源码网站集约化建设启示和建议
  • 上海景泰建设股份有限公司网站温州网站建设及推广
  • 平度那里有做网站的赣icp南昌网站建设
  • 服务器上的网站打不开重庆彼客的网站是谁家做的
  • 网站开发 集成包主题网页设计
  • 万网域名跳转到指定网站培训型网站建设
  • 张北网站建设公司济宁计算机网站建设培训班
  • 如何建设网站兴田德润可以吗wordpress能改什么
  • 月嫂的个人简历网站模板杭州便宜的手机网站建设
  • 科技网站模板免费下载网站建设属于IT吗
  • 网站如何做h5动态页面如何用模板做网站视频
  • 石家庄服务大型建站外贸推广平台
  • 网站seo哪家做的好wordpress中文网站优化
  • 西安免费公司网站制作网站电子商务平台建设
  • 蜘蛛seo超级外链工具手机优化设置
  • 网络科技网站排名宁波网站制作定制
  • 成都高端网站制作公司厦门网站建设设计公司哪家好