import threading
import time
balance = 0
lock = threading.Lock()
def run_thread(n): global balance
for i in range(100):
lock.acquire()
balance = balance + 1
n = n + balance
time.sleep(1)
print(threading.current_thread().name)
print(n)
print("\r\n\r\n")
lock.release()
t1 = threading.Thread(target=run_thread, args=(5, ), name="t1")
t2 = threading.Thread(target=run_thread, args=(8, ), name="t2")
t1.start()
t2.start()
t1.join()
t2.join()
执行结果: t1 4661
t1 4758
t1 4856
t1 4955
t1 5055 -------------------这儿是 t1 线程已经执行完毕了
t2 109---------------------t2 线程开始执行了
t2 211
t2 314
t1 线程全部走完才会走 t2 线程
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.