同步互斥

线程间通信方法

1.通信方法:线程间使用全局变量进行通信

2.共享资源争夺

 

  • 共享资源:多个进程或者线程都可以操作的资源称为共享资源。对共享资源的操作代码段称为临界区。
  • 影响 : 对共享资源的无序操作可能会带来数据的混乱,或者操作错误。此时往往需要同步互斥机制协调操作顺序。

 

3.同步互斥机制

同步 : 同步是一种协作关系,为完成操作,多进程或者线程间形成一种协调,按照必要的步骤有序执行操作。

Python并发编程—同步互斥

互斥 : 互斥是一种制约关系,当一个进程或者线程占有资源时会进行加锁处理,此时其他进程线程就无法操作该资源,直到解锁后才能操作。

Python并发编程—同步互斥

线程同步互斥方法

线程Event

from threading import Event

e = Event() 创建线程event对象

e.wait([timeout]) 阻塞等待e被set

e.set() 设置e,使wait结束阻塞

e.clear() 使e回到未被设置状态

e.is_set() 查看当前e是否被设置

 1 from threading import Thread,Event
 2 
 3 s = None  # 用于通信
 4 e = Event() # 创建event对象
 5 
 6 def 杨子荣():
 7   print("杨子荣前来拜山头")
 8   global s
 9   s = "天王盖地虎"
10   e.set()  # 对e设置
11 
12 t = Thread(target=杨子荣)
13 t.start()
14 
15 print("说对口令就是自己人")
16 e.wait()  # 阻塞等待口令说出
17 if s == '天王盖地虎':
18   print("宝塔镇河妖")
19   print("确认过眼神,你是对的人")
20 else:
21   print("打死他...")
22 
23 t.join()
24 
25 # 说对口令就是自己人
26 # 杨子荣前来拜山头
27 # 宝塔镇河妖
28 # 确认过眼神,你是对的人
同步互斥方法演示

相关文章:

  • 2022-01-11
  • 2021-11-11
  • 2021-07-28
  • 2021-11-15
  • 2021-05-04
  • 2022-01-22
  • 2022-12-23
  • 2021-06-28
猜你喜欢
  • 2022-12-23
  • 2021-11-12
  • 2021-10-09
  • 2021-10-04
  • 2021-06-13
  • 2022-12-23
相关资源
相似解决方案