美文网首页
限制每次运行的多线程的数量

限制每次运行的多线程的数量

作者: ___大鱼___ | 来源:发表于2019-05-30 13:40 被阅读0次
    # coding: utf-8
    
    # semaphore 用于控制进入数量的锁
    # 文件,读、写, 写一般只允许有一个  读可以有多个 我们想限制读的数量应该怎么办
    
    import threading
    import time
    
    
    class HtmlSpider(threading.Thread):
        def __init__(self, url, sem):
            super().__init__()
            self.url = url
            self.sem = sem
    
        def run(self):
            time.sleep(2)
            print('success')
            self.sem.release()
    
    
    class UrlProduct(threading.Thread):
        def __init__(self, sem):
            super().__init__()
            self.sem = sem
    
        def run(self):
            for i in range(20):
                self.sem.acquire()
                html_thread = HtmlSpider('https://www.zhijinyu.com/{}/'.format(i), self.sem)
                html_thread.start()
    
    if __name__ == '__main__':
        # 限制每次线程最高并发数量
        sem = threading.Semaphore(value=3)
        url_thread = UrlProduct(sem)
        url_thread.start()
    

    相关文章

      网友评论

          本文标题:限制每次运行的多线程的数量

          本文链接:https://www.haomeiwen.com/subject/ukumtctx.html