建站行业成为买方市场,办公网络建设项目商务要求,福建宁德建设局网站,手机app界面设计图参考链接#xff1a; 示例说明Python2.x和Python3.x之间的重要区别
信号量semaphore 是一个变量#xff0c;控制着对公共资源或者临界区的访问。信号量维护着一个计数器#xff0c;指定可同时访问资源或者进入临界区的线程数。下面这篇文章主要给大家介绍了关于Python3.X 线…参考链接 示例说明Python2.x和Python3.x之间的重要区别
信号量semaphore 是一个变量控制着对公共资源或者临界区的访问。信号量维护着一个计数器指定可同时访问资源或者进入临界区的线程数。下面这篇文章主要给大家介绍了关于Python3.X 线程中信号量的使用方法需要的朋友可以参考借鉴下面来一起看看吧。 前言
最近在学习python发现了解线程信号量的基础知识对深入理解python的线程会大有帮助。所以本文将给大家介绍Python3.X线程中信号量的使用方法下面话不多说来一起看看详细的介绍
方法示例
线程中信号量主要是用来维持有限的资源使得在一定时间使用该资源的线程只有指定的数量
# -*- coding:utf-8 -*- Created by FizLin on 2017/07/23/-下午10:59 mail: https://github.com/Fiz1994 信号量 maxconnections 5
...
pool_sema BoundedSemaphore(valuemaxconnections)
Once spawned, worker threads call the semaphores acquire and release methods when they need to connect to the server: pool_sema.acquire()
conn connectdb()
... use connection ...
conn.close()
pool_sema.release() import threading
import time
import random sites [https://www.baidu.com/, https://github.com/Fiz1994, https://stackoverflow.com/, https://www.sogou.com/, http://english.sogou.com/?b_o_e1ieutf8frcommon_index_navquery] * 20
sites_index 0
maxconnections 2
pool_sema threading.BoundedSemaphore(valuemaxconnections) def test(): with pool_sema: global sites_index, sites url str(sites[sites_index]) k random.randint(10, 20) print(爬去 url 需要时间 : str(k)) sites_index 1 # print(url) time.sleep(k) print(退出 , url) for i in range(100): threading.Thread(targettest).start() 可以发现该程序中永远只有2个爬虫是处于活动状态 推荐我们的python学习基地看老程序是如何学习的从基础的python脚本、爬虫、django、数据挖掘等编程技术工作经验还有前辈精心为学习python的小伙伴整理零基础到项目实战的资料每天都有程序员定时讲解Python技术分享一些学习的方法和需要留意的小细节 总结
以上就是这篇文章的全部内容了希望本文的内容对大家的学习或者工作能带来一定的帮助