本文摘自php中文网,作者黄舟,侵删。
信号量semaphore 是一个变量,控制着对公共资源或者临界区的访问。信号量维护着一个计数器,指定可同时访问资源或者进入临界区的线程数。下面这篇文章主要给大家介绍了关于Python3.X 线程中信号量的使用方法,需要的朋友可以参考借鉴,下面来一起看看吧。前言
最近在学习python,发现了解线程信号量的基础知识,对深入理解python的线程会大有帮助。所以本文将给大家介绍Python3.X线程中信号量的使用方法,下面话不多说,来一起看看详细的介绍:
方法示例
线程中,信号量主要是用来维持有限的资源,使得在一定时间使用该资源的线程只有指定的数量
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
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_e=1&ie=utf8&fr=common_index_nav&query=" ] * 20
sites_index = 0
maxconnections = 2
pool_sema = threading.BoundedSemaphore(value = maxconnections)
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
time.sleep(k)
print ( '退出 ' , url)
for i in range ( 100 ):
threading.Thread(target = test).start()
|
可以发现该程序中,永远只有2个爬虫是处于活动状态

总结
以上就是关于Python3.X线程中信号量的使用详解的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
Python的异常有哪些类型?Python异常处理的介绍
Python中defaultdict与lambda表达式用法
mac版Python如何安装模块
使用Python和xlwt向excel文件中写入中文
Python如何安装wordcloud库
Python教程中的注释是什么
Python中执行存储过程及获取返回值的方法介绍
Python如何产生10个不同的随机数
Python中range什么意思
django 教程介绍
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » 关于Python3.X线程中信号量的使用详解