在阅读python中的线程和套接字时,我发现了一个基本上可以完成我想要的资源的资源。我做了一些修改以满足自己的需求,然后重新编写并运行它以确保我了解自己在做什么。
一个元素,但是我没有任何改变,这给了我一个语法错误。
根据标题,该行仅是:
global printlock = threading.Lock()
在一个文件中,它可以无缝运行,在我的版本中,它返回:
global print_lock=threading.Lock()
^
SyntaxError: invalid syntax
我已经尝试过更改间隔,以防万一,但是看不出创建此锁定对象的问题的明显原因。有什么想法吗?
def establish_connection(s):
while True:
print("Waiting for connections...")
connection, clientaddr = s.accept()
log_connection(clientaddr)
printlock.acquire()
print("Connected to: " + str(clientaddr))
start_new_thread(tfunction, (connection,))
s.close()
它本质上是使用的,因此当人们连接时它不会崩溃,它会一次处理一个请求,但是由于创建了一个新文件,它只是在没有明显原因的情况下出现语法错误
答案 0 :(得分:1)
您不能在global
语句中分配变量,它仅用于声明变量。将其拆分为两个语句:
global printlock
printlock = threading.Lock()