如何使用带单参数函数的Python线程?

2024-09-29 21:36:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我在下面创建了一个主函数,在Thread内有两个参数函数

if __name__ == "__main__":
    # Define ports
    ports_for_server_connection=[10003, 10004, 10005, 10006]
    for port_number in ports_for_server_connection:
        # Open multi thread sockets so that each will respond independently
        t = Thread(target=openServer, args=(port_number, 1))
        t.start()

但是,我只想用一个参数创建该函数。当我试图用一个参数(args=(port_number, 1))实现它时,我得到了以下错误

Traceback (most recent call last):
  File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.6/threading.py", line 864, in run
    self._target(*self._args, **self._kwargs)
TypeError: openServer() argument after * must be an iterable, not int

如何使用只有一个参数函数的线程

谢谢


Tags: 函数inselfnumbertargetfor参数server
1条回答
网友
1楼 · 发布于 2024-09-29 21:36:20

只传递一个参数:

t = Thread(target=openServer, args=(port_number,))

诀窍在于(x,)是长度为1的元组,而第一项是x。如果这太难,请使用列表:

t = Thread(target=openServer, args=[port_number])

相关问题 更多 >

    热门问题