Python 信号量对象

来源:千锋教育
发布时间:2023-11-07 06:37:19
分享

和锁机制一样,信号量机制也是一种实现线程同步的机制,不过它比锁多了一个计数器,这个计数器主要用来计算当前剩余的锁的数量。

threading.Semaphore(value=1)

信号量实现类,可选参数value赋予内部计数器初始值,默认值为1。它具有如下方法:

acquire(blocking=True,timeout=None):获取一个信号量,参数blocking用来设置是否阻塞,timeout用来设置阻塞时间。

release():释放一个信号量,将内部计数器的值增加1。

importthreading#

创建信号量对象

s=threading.Semaphore(10)

a=5

defoper(b):

#获取信号量

s.acquire()

globala

a=a-b

a=a+b

#释放信号量

s.release()

deftarget(b):

foriinrange(100000):

oper(b)

if__name__=='__main__':

m=5

whilem>0:

t1=threading.Thread(target=target,args=(1,))

t2=threading.Thread(target=target,args=(2,))

t1.start()

t2.start()

t1.join()

t2.join()

print(a)

m=m-1

以上内容为大家介绍了Python信号量对象,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。

声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • 什么是python生成器? 通过列表生成式,我们可以直接创建一个列表,但是,受到内存限制,列表容量肯定是有限的,而且创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占
  • python生成器函数 为什么叫生成器函数?因为它随着时间的推移生成了一个数值队列。一般的函数在执行完毕之后会返回一个值然后退出,但是生成器函数会自动挂起,然后重新拾起急需执行,他会利用yield关键字关起函数,给调用者返回
  • python知识问答 执行python脚本的两种方式是什么?1,交互器执行,在控制台上运行临时输入的代码2,文件操作,执行一个保存好的py文件两者的区别是:一个是内存操作,一个是硬盘操作,内存的特点是:读取速度快,但是断电
  • python 文件操作之打开文件和关闭文件 一,打开文件python中打开文件的函数为open('filename',mode='r',encode='None'),open函数默认返回文件的句柄
  • Python文件的读取、创建、追加、删除、清空 一,用python创建一个新文件,内容是0到9的整数,每个数字占一行f=open('f.txt','w')foriinrange(0,10):f.write(str(i
  • Python文件的指针定位与查询 1、文件指针:文件被打开后,其对象保存在f中,它会记住文件的当前位置,以便于执行读、写操作,这个位置称为文件的指针(一个从文件头部开始计算的字节数long类型)。2、文件打开时的位置:以"r""r+"