import threading
from threading import Lock
def test1(self, server, filename, public_key):
print("开始向服务器", server, "上传")
lock1 = threading.Lock()
lock1.acquire()
with open(filename, 'rb', ) as f:
check = self.connect.upload(f, str(public_key) + '.py', server[4], server)
f.close()
lock1.release()
if check:
self.used_server.append(server[0])
self.pids.append("pid")
else:
return False
for server in self.servers:
t1 = threading.Thread(target=test1, args=(self, server, filename, public_key,))
t1.start()
t1.join()
线程锁作用:防止内部数据被其他线程修改
锁的 核心作用 就是为了保证数据的 一致性 ,对锁内的资源(变量)进行锁定,避免其它线程偷偷进行 篡改 。以达到我们的预期效果。即: 异步变同步。