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()