Python 我的代码在Thread()之后不继续。start()之后
我正在为战舰游戏编写代码,我有点卡住了 这是我代码的一部分Python 我的代码在Thread()之后不继续。start()之后,python,multithreading,debugging,pygame,Python,Multithreading,Debugging,Pygame,我正在为战舰游戏编写代码,我有点卡住了 这是我代码的一部分 color_change() ship_position() Thread(target=ship_pos_Recv()).start() ships_send = pickle.dumps(ships) client.send(ships_send) print('sent') Lock(target=ship_pos_Recv()).acquire() # main loop begins color\u change()对网
color_change()
ship_position()
Thread(target=ship_pos_Recv()).start()
ships_send = pickle.dumps(ships)
client.send(ships_send)
print('sent')
Lock(target=ship_pos_Recv()).acquire()
# main loop begins
color\u change()
对网格上的单元格进行“着色”,并且ship\u position()
允许用户放置其船舶
问题是,在线程(target=ship_pos_Recv())之后代码不会继续。start()
;它不会执行pickle函数。
ship\u pos\u Recv()
如下所示:
def ship_pos_Recv():
global enemy_ships
incoming = client.recv(2048)
converted = pickle.loads(incoming)
enemy_ships = converted
为什么它不“超越”螺纹部分?我知道我的解释很糟糕,请给我留言,我会尽力回答你的询问
PLZ HAAALP正如您现在所拥有的那样,您正在调用函数
ship_pos_Recv
,然后将其返回传递给线程
类中的目标
参数。如果查看线程
类,可以看到它调用传递给目标的函数(在运行
方法中)
代码应该是这样的:
Thread(target=ship_pos_Recv).start()
这将传递ship_pos_Recv
到Thread
类,然后作为线程运行
至于Lock
,它看起来没有被正确使用。如果您试图等待线程完成,则应将线程设置为变量,然后将其加入。例如:
t = Thread(target=ship_pos_Recv)
t.start()
# do some code
t.join() # this waits for the thread to complete
不要调用函数,将代码更改为,Thread(target=ship\u pos\u Recv).start()