序言:
用一台电脑采集,怎样让CPU跑满,让带宽也充分用光,让电力+带宽+电脑充分利用就考验我们的技术实力了。
下面是我的实操代码:
# coding=utf-8 from multiprocessing import Pool import time from po.ddmcwechat_page import DdmcWechatPage def main(device_info): print(f"###########################################{device_info} start#########################################") DdmcWechatPage(device_info).run() print(f"###########################################{device_info} end#########################################") time.sleep(100) if __name__ == '__main__': # 创建进程池 device_infos = ["夜神62001", "夜神62026"] with Pool(len(device_infos)) as pool: # device_infos:要处理的数据列表,main:处理device_infos列表中数据的函数 pool.map(main, device_infos) # 并行 # pool.close() # 关闭进程池,不再接受新的进程 pool.join() # 主进程阻塞等待子进程的退出
下面是技术总结
使用多进程模块(multiprocessing)可以很方便地实现并发。multiprocessing模块是Python标准库中专门用于处理多进程的模块。
其中,multiprocessing.Pool()方法提供了对多进程并发的支持,可以实现同时执行多个子进程,以达到提高程序运行效率的目的。比如以下代码:
```python
from multiprocessing import Pool
def func(x):
return x*x
if __name__ == '__main__':
p = Pool(processes=4) # 定义进程池中的进程数量
result = p.map(func, [1, 2, 3, 4, 5]) # 将任务提交至进程池
print(result) # 打印结果
```
将会并发执行func函数,返回值为[1, 4, 9, 16, 25]。
另外,使用``multiprocessing.Process``类也可以创建进程并进行并发操作。具体实现可以参考[multiprocessing官方文档](https://docs.python.org/3/library/multiprocessing.html)。
特别声明:加紧钻研技术,用技术改变世界,不要用技术危害世界。让我们携手并进,追逐技术,实现超越自我,欢迎私聊。