Python是否会自动识别关键部分?

2024-03-28 18:22:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python多线程编码的新手。我查阅了锁对象的使用手册,发现正常情况是

g_mutex = Lock()
g_mutex.acquire()
#some code
g_mutex.release()

但是锁没有指定要锁定的变量或函数?那么python会自动找到所有要锁定的关键变量吗?如果我调用一些函数来修改一些变量呢?在


Tags: 对象函数lock编码release情况codesome
2条回答

Lock的用途是在任何给定的时间内最多有一个线程可以容纳它。如果您获得锁,您可以确定没有其他进程持有它。如果你想用锁来保护对某个变量的访问,那就由你来定义锁的语义了,只要这样做:在搞乱变量之前获取锁,完成后释放它。锁对象和它所保护的变量之间不需要显式的关系这是由您使用它的方式定义的。(还要注意,Python没有任何特定于这个概念的东西。)

锁定将找不到要锁定的变量或函数。锁是一个你可以用来这样做的机械装置。例如,如果要保护任何修改的变量foo,则必须:

  • 为该变量创建一个锁
  • 在修改或使用整个代码之前获取
  • 之后释放

相关问题 更多 >