线程

target:线程执行函数
args:函数需要的参数,必须以元组的方式传参
name:指定子线程的名字
daemon:设置是否为守护线程,默认为False,若为守护线程则为True
t.isAlive()
功能:判断线程是否还活着
t.getName() 获取线程的名字
t.setName() 设置线程的名字
t.start() 开启线程,线程准备就绪
t.isDaemon() 判断某个线程是否为后台线程
t.join([timeout]): 阻塞当前上下文环境的线程,直到调用此方法的线程终止或
到达指定的timeout

lock.acquire() #上锁

lock.release() #释放锁

lock = threading.Lock()
使用 with lock
with内部实现了enter()和exit()执行语句之前调用enter方法,退出的时候调用exit

使用递归锁来解决死锁的问题。
递归锁的实现原理:
在递归锁中不但存在lock还存在counter计数,每当acquire()一次锁,counter计数就进行
加1处理,每当release() 一次锁,counter计数减1处理,直到counter计数为0的情况下
所有线程重新去抢占资源。

信号量的实现方式:
在内部有一个counter计数器,每当我们 s.acquire()一次,计数器就进行减1处理
每当 s.release()一次,计数器就进行加1处理,当计数器为0的时候其他线程的就处于
等待的状态counter的值就是同一时间可以开启线程的个数
建议使用with

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值