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

线程同步

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

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

线程同步的方式

1.线程等待(join)

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

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

互斥锁的使用步骤:

# 创建锁

mutex = threading.Lock()

# 上锁

mutex.acquire()

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

# 排放锁

mutex.release()

注意点:

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

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容