【发布时间】:2020-09-16 03:19:01
【问题描述】:
import threading
x = 0
def test(lock):
global x
for i in range(10):
lock.acquire()
print(threading.current_thread())
x+= 1
lock.release()
def mt():
lock = threading.Lock()
t1 = threading.Thread(target=test , args=(lock,))
t2 = threading.Thread(target = test , args=(lock,))
t1.start()
t2.start()
t1.join()
t2.join()
mt()
print(x)
我正在尝试在 python 中学习多线程。我使用 python 内置方法来锁定和解锁任何进程。 我可以在没有任何内置函数的情况下执行此操作吗?
【问题讨论】:
-
两种方式: 1.使用3rd锁,如redis锁; 2. 使用线程安全逻辑,特别是避免使用全局变量。
-
嘿,我对这个概念很陌生。你能扩大你的答案吗?
-
这是一个很大的话题,初学者很难解释清楚。所以,首先你应该用谷歌搜索什么是“线程安全”,然后你可以问一个更好的问题。
-
你能给我一些代码吗?有点急。
标签: python multithreading synchronization thread-safety python-multithreading