怎么理解python信号量
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,本篇内容介绍了"怎么理解python信号量"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!01:信号量
千家信息网最后更新 2025年11月07日怎么理解python信号量
本篇内容介绍了"怎么理解python信号量"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
01:信号量
1)概述:信号量是用来控制线程并发数的。
2)原理:BoundedSemaphore和Semaphore管理一个内置的计数器。每当资源释放递增时(调用acquire)计数器-1,资源消耗时递减(调用release)计数器+1。
3)调用格式:threading.BoundedSemaphore/Semaphore(value);值默认1
4)使用场景:停车位(固定的停车位,车位全部被占用则进不来;只有车子离开其余车才能进来)
5)BoundedSemaphore和Semaphore区别:前者将在调用release()时检查计数器的值是否超过了计数器的初始值,如果超过将抛出一个异常。
6)注意事项:计数器不能小于0,当计数器为0时:acquire()将阻塞线程至同步锁定状态,直到其他线程调用release()。
02:案例操作
停车场只有3个停车位。来了5辆汽车需要停车这时候就使用Semaphore来控制访问量了
只能同时允许3辆车同时进入停车场,第4辆车只有等先进入的3辆车中有车出来才可进入
import threading,time,random
semaphore=threading.Semaphore(3)#同一时间只能有3个线程处于运行状态
def run (ii):
semaphore.acquire() # 获得信号量:信号量减一
print(ii,'号车可以进入')
time.sleep(random.randint(0,10)*1)
print(ii,'号停车位释放')
semaphore.release()# 释放信号量:信号量加一
for i in range(5):#创建5个线程
t=threading.Thread(target=run,args=(i,))
t.start()
03:BoundedSemaphore和Semaphore区别案例操作
BoundedSemaphore调用时如果计数器的值超过了初始值会抛出异常;但是Semaphore不会
import threading,time,random
semaphore=threading.BoundedSemaphore(3)#同一时间只能有3个线程处于运行状态
def run (ii):
semaphore.acquire() # 获得信号量:信号量减一
print(ii,'号车可以进入')
time.sleep(random.randint(0,10)*1)
print(ii,'号停车位释放')
#***************此处高能******************
semaphore.release()# 释放信号量:信号量加一
# 再次释放信号量:信号量加一,这时超过限定的信号量数目会报错ValueError: Semaphore released too many times
semaphore.release()
#***************高能结束******************
for i in range(5):#创建5个线程
t=threading.Thread(target=run,args=(i,))
t.start()"怎么理解python信号量"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
信号
信号量
计数器
线程
停车位
只有
案例
状态
加一
停车场
内容
同时
时间
更多
知识
资源
控制
运行
实用
学有所成
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
直销软件开发与定制
网络安全第一课视频2020
域名服务器管理范围
2021金盾信安杯网络安全大赛
网络安全设计包括
计算机软件开发文档有哪些
开拓者网络技术公司
xbox服务器dns解析
发生网络安全事件的责任单位
网络安全考研有前途吗
信息与网络安全工作方案
高价回收服务器
dhcp服务器安装与配置
部队信息网络安全新闻
湖南服务器防火墙价格
福建网络技术转让采购
高新区数据网络技术怎么样
计算机网络安全隐患主要内容
甘肃存储服务器机箱上哪找云空间
浪潮服务器进入管理界面
基础软件开发是啥意思
贵州网络技术服务含义
炫我集群管理软件的服务器
如何界定互联网高科技企业
如果银行数据库被入侵了
博源软件开发
美信网络技术公司怎么查找
查询多个数据库表信息
电商系统软件开发服务商
长沙安卓软件开发大概多少钱