zoukankan      html  css  js  c++  java
  • Python实现线程池

    供参考

    from multiprocessing import Pool
    import time
    
    
    def function(index):
        print(f'Start process: {index}')
        time.sleep(3)
        print(f'End process {index}')
    
    
    if __name__ == '__main__':
        pool = Pool(processes=3)
        for i in range(100):
            pool.apply_async(function, args=(i,))
    
        print('Main Process started', sep='
    ')
        pool.close()
        pool.join()
        print('Main Proess ended')

    100个进程需要执行,但是最多同时执行3个进程。

    # map方法的使用
    # 第一个参数就是要启动的进程对应的执行方法
    # 第二个参数是一个可迭代对象,其中的每个元素会被传递给这个执行方法
    
    from multiprocessing import Pool
    import urllib.request
    import urllib.error
    
    
    def scrape(url):
        try:
            urllib.request.urlopen(url)
            print(f'URL {url} Scraped')
        except (urllib.error.HTTPError, urllib.error.URLError):
            print(f'URL {url} not Scraped')
    
    
    if __name__ == '__main__':
        pool = Pool(processes=3)
        urls = [
            'http://www.baidu.com',
            'http://www.meituan.com/',
            'http://blog.csdn.net/',
            'http://xxxyxxx.net'
        ]
        pool.map(scrape, urls)
        pool.close()
  • 相关阅读:
    操作系统基础知识与常见问题记录
    String
    Function
    HelloWorld
    替换空格
    二维数组中的查找
    建造者模式(Builder Pattern)
    单例模式(Singleton Pattern)
    工厂方法(Factory Pattern)
    设计模式概述
  • 原文地址:https://www.cnblogs.com/zhzhang/p/15087895.html
Copyright © 2011-2022 走看看