美文网首页
线程 -- 线程同步(join和互斥锁)

线程 -- 线程同步(join和互斥锁)

作者: glRu | 来源:发表于2020-07-27 17:40 被阅读0次

    线程同步

    保证同一时刻只能有一个线程去操作全局变量同步:就是协同步调按预定的先后次序进行运行

    比如如:你说完,我再说,好比现实生活中的对讲机

    线程同步的方式

    1.线程等待(join)

    2.互斥锁:对共享数据进行锁定,保证同一时刻只有一个线程去操作

    注意:互斥锁是多个线程一起去抢,抢到锁的线程先执行(谁先抢到不知道),没有抢到锁的线程需要等待,等互斥锁使用完释放后,其它等待的线程再去抢这个锁.

    互斥锁的使用步骤:

    # 创建锁

    mutex = threading.Lock()

    # 上锁

    mutex.acquire()

    #这里编写代码保证同一时刻只能有一个线程去操作,对共享数据进行锁定

    # 排放锁

    mutex.release()

    注意点:

    acquire和 release方法之间的代码同一时刻只能有一个线程去操作

    如果在调用 acquire方法的时候其他线程已经使用了这个互斥锁,那么此时 acquire方法会堵塞,直到这个互斥锁释放后才能再次上锁。

    相关文章

      网友评论

          本文标题:线程 -- 线程同步(join和互斥锁)

          本文链接:https://www.haomeiwen.com/subject/bfazlktx.html