本文摘自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能处理excel吗
如何用Python画笑脸
Python中count函数的用法
如何利用Python拷贝一个文件
Python面向对象编程的详细介绍
Python3如何使用smtp协议发送e-mail电子邮件的示例
Python中有哪些基本数据类型
Python中size和count的区别
Python自学要多久能学会
Python 怎么获取文件名
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » 关于Python3.X线程中信号量的使用详解