国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > Python高级 > python多线程线程锁如何使用

python多线程线程锁如何使用

头像

宋雪维

2021-01-28 16:03:555740浏览 · 0收藏 · 0评论

在使用多线程处理程序的过程中,如何多个线程同时操作一个对象,很容易造成线程不安全的问题,严重影响程序结果。因此会使用线程锁,线程锁就向我们正常生活中的锁一样,可以保护我们想要保护对象的安全,而且还可以同时使用多个锁锁住一个资源。

1、什么是线程锁?

同一时刻只允许一个线程操作该数据,可以保证数据安全。

线程锁用于锁定资源,可以同时使用多个锁,当需要独占某一资源时,任何一个锁都可以锁这个资源。

2、线程锁目的

将一段代码锁住,一旦获得锁权限,除非释放线程锁,否则其他代码都无法获得锁权限。

3、为什么要使用线程锁?

多线程同时完成特定的操作时,由于并不是原子操作,所以在完成操作的过程中会被打断去做其他的工作,可能会产生脏数据

4、创建锁:

lock=threading.Lock()   
cond=threading.Condition(lock=lock)

5、锁的方法:

cond.acquire():  获得锁
cond.wait()           等待通知
cond.notify()        通知正在等待的锁
cond.notify_all()   通知所有正在等待的锁
cond.release()       释放锁

5、使用线程锁

"""
多线程数据访问问题
"""
import threading

num = 0

def test():
    """测试函数"""
    global num
    for i in range(1, 1000001):
        # 上锁:锁定
        lock.acquire()
        num += 1
        # 开锁
        lock.release()

    print(f"{threading.current_thread().getName()}当前线程执行完成,num: {num}")


# 创建一个互斥锁{多个线程之间互斥}对象
lock = threading.Lock()

if __name__ == "__main__":
    # 创建两个线程,完成计数任务
    t1 = threading.Thread(target=test)
    t2 = threading.Thread(target=test)
    t1.start()
    t2.start()
    '''
    0---10
    t1: 1 2 3                11 12         16                 : 16
    t2:        4 5 6 7 8 9 10      13 14 15   17 18 19 20     : 20
    '''

以上就是python多线程线程锁的使用介绍,希望能帮助你理解哦~更多python学习推荐:python教程

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

《男医生的特殊治疗》| 我的姨母中字ID| 扌暴辶鬲的短文| 甜蜜惩罚~我是看守专用宠物| 成品动漫网站入口网页版怎样| 军官(巨肉高H)| 男生把小困困放到女生困里视频| 当着老公的面被维修工欺负| 儿媳妇长太漂亮免费观看电视剧| 干爹你真棒插曲免费看| 无人区免费观看高清电视剧| BOBO| 九九在线观看免费播放大全电视剧 | 扒灰小调公媳干仗艳丽是谁唱的| 父亲开了两个女儿包演员表| 《医务室上垒》动漫全集在线观看 | 《医务室上垒》动漫全集在线观看 | 压在窗户上C给别人看窗前视频 | 家族轮换之共乐的日子最新章节更,| 小日子在线观看高清完整版| 尿到你肚子里好不好| 狗锁住女人狗的视频大全图片| 肉丸子影院免费观看电视剧| 一手遮胸一手遮阴黑白壁纸| 《关照丈夫的上司》大结局| 他的巨物撑开她的花缝的导演是谁| 下面的小嘴又饿了| 局长把我奶头掏出来直接吃| 女生穿露胸开又裙穿搭大忌| 韩剧《酒醉热吻》| 亚洲第一大综合区的就业前景| 女生给男生吃小头头| 办公室刺激战场3| 韩国咬住奶头的乳三级| 女生把球球给男生抓的视频| 蜜桃3D| 黑料门-今日黑料-每日大赛| 男女睡过以后谁更想念| GAI视频免费播放器| 密爱在线观看| 春夜影院电视剧免费播放