![ec100b17f9ebe13ba0d4e1580ad558b6.png](https://i-blog.csdnimg.cn/blog_migrate/3cd31c8290450aa48d061d08e26a200a.jpeg)
今天为大家带来的内容是:python高级编程之消息队列(Queue)与进程池(Pool),结合了实例的形式详细分析了Python消息队列与进程池的相关原理、使用技巧与操作注意事项!!!
Queue消息队列:
1.创建
![8002d735f1137182e2981b0366eb14b5.png](https://i-blog.csdnimg.cn/blog_migrate/3c86be7d1a8b70205caa400c355193a7.png)
2.方法
![f7f8e6b2b4d7e39785867d00e6d9071d.png](https://i-blog.csdnimg.cn/blog_migrate/b0dffeb609688786c3881ad92aadea6f.jpeg)
3.进程通信
因为进程间不共享全局变量,所以使用Queue进行数据通信,可以在父进程中创建两个字进程,一个往Queue里写数据,一个从Queue里取出数据。
代码如下:
![e624b5fec74cc183656660a79a461fb3.png](https://i-blog.csdnimg.cn/blog_migrate/123bf4204e374fd66581ba9a4f829835.jpeg)
执行结果:
![2811fb790beffe31ee7d35dc606c336c.png](https://i-blog.csdnimg.cn/blog_migrate/879aa0e15273607b1781e18fa15e7b4d.png)
Pool进程池
初始化Pool时,可以指定一个最大进程数,当有新的请求提交到Pool中时,如果池还没有满,那么就会创建一个新的进程用来执行该请求;但如果池中的进程数已经达到指定的最大值,那么该请求就会等待,直到池中有进程结束,才会用之前的进程来执行新的任务。
1.创建
![3ad92a79e891903226c4832cca549ca2.png](https://i-blog.csdnimg.cn/blog_migrate/0459d7b1233ea78b5b6b06417a35d4e7.jpeg)
2.方法
![f45ee602f91e3f28b6fa1b3d59423f06.png](https://i-blog.csdnimg.cn/blog_migrate/09080de33f6dae4b2e2663a752889cd9.jpeg)
3.进程池内通信
创建进程池内Queue消息队列通信
![857fa7e216eb74f8649f77765d8a35b4.png](https://i-blog.csdnimg.cn/blog_migrate/56f8979eddf44d8422c290806f9a1d1e.png)
例:
![51e03ea2432e791600cb14761b6cfc9d.png](https://i-blog.csdnimg.cn/blog_migrate/6324573a7f8aea9a1cf78eaed37a93b2.jpeg)
写入数据的方法:
![cd9ad5be5a136319b80c63e893bf1521.png](https://i-blog.csdnimg.cn/blog_migrate/67a4640765054e6f6435d31a6ce0197f.jpeg)
创建读取数据的方法
![c0c8dc078244bcdee7a49f3bb9f98cb6.png](https://i-blog.csdnimg.cn/blog_migrate/e381b84284d66e133d04773b94461aa6.jpeg)
运行结果:
![5245846e12d6a84a7d113ee89e781220.png](https://i-blog.csdnimg.cn/blog_migrate/d086dc1437b5a91381ef2c49fcc81c13.jpeg)
4.案例(文件夹copy器)
代码:
![052e6db4e887a9c7abc9aa188c3cb398.png](https://i-blog.csdnimg.cn/blog_migrate/787054d30940c7f8efa611418f77e2fa.png)
![a5dfe4faf343bf282ac34acde0fe242f.png](https://i-blog.csdnimg.cn/blog_migrate/91820dc92ba7b8c9d497f3da5384a3f5.jpeg)
运行结果:
![f006e3945eab5fe4a1cee0ed3e66315d.png](https://i-blog.csdnimg.cn/blog_migrate/c39ebc6560e5183102c7badfdacfd36c.jpeg)
以上就是本文的全部内容啦,希望对大家的学习有所帮助!!!
![6a1ae3429e2cc9adeb5bd4d71f85e013.png](https://i-blog.csdnimg.cn/blog_migrate/1d82c74bbfbb83ea70f79d103bd60499.jpeg)