多任务-python实现-同步概念,互斥锁解决资源竞争(2.1.4)
发布时间:2020-12-20 12:44:32 所属栏目:Python 来源:网络整理
导读:目录 1.同步的概念 2.解决线程同时修改全局变量的方式 3.互斥锁 @(网络编程) 1.同步的概念 同步就是协同步调,按照预定的先后次序进行运行,如你说完我在说 同步在子面上容易理解为一起工作 其实不是,同指的应该是协同,协助,互相合作 如进程,线程同步,
目录
@(网络编程) 1.同步的概念同步就是协同步调,按照预定的先后次序进行运行,如你说完我在说 2.解决线程同时修改全局变量的方式使用线程同步思路
3.互斥锁当多个线程同时修改某一个共享数据的时候,需要进行同步控制 最简单的同步机制就是互斥锁 代码实现 import threading g_num = 0 def test1(num): global g_num #上锁,如果之前没有被上锁,那么此时上锁成功 #如果上锁之前 已经被上锁了,那么此时会被堵塞到这里,直到 这个锁被解开为止 mutex.acquire() for i in range(num): g_num += 1 #解锁 mutex.release() print("in test1 gnum = %d" % g_num) def test2(num): global g_num mutex.acquire() for i in range(num): g_num += 1 mutex.release() print("in test2 gnum = %d" % g_num) #创建一个互斥锁,默认是没有上锁的 mutex = threading.Lock() def main(): t1 = threading.Thread(target=test1,args=(100000000,)) t2 = threading.Thread(target=test2,)) t1.start() t2.start() if __name__ == '__main__': main() 注意
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |