我正在尝试在 python 中创建一个程序,我必须同时运行两个类。所以我想要做的是我只是为类的每个实例创建一个线程。编程对我来说很新,所以这就是我们所说的“用户错误”;)
这是我的代码:
import threading
import sys
servers = [
["Server 01", "192.168.0.1", 12345, "password"],
["Server 02", "192.168.0.1", 12346, "password"],
]
def main():
for row in servers:
serverName = row[0]
serverAddress = row[1]
rconPort = row[2]
rconPass = row[3]
th = threading.Thread(target = rcon.RconProtocol(serverAddress, rconPort, rconPass, serverName))
th.start()
if __name__ == '__main__':
main()
该代码适用于servers
. 但随后它停止了th.start()
。所以不管我之后做什么th.start()
,它都不会运行。RconProtocol
除了听套接字之外没有做任何特别的事情。这就是我认为问题所在。RconProtocol
我在类(while True
)中有一个无限循环。
我试图做一个类似的功能(我也做了另一个调用two
):
def one():
while True:
print "one"
并将其指定为我的线程的目标,我遇到了同样的问题。它可以在没有 while 循环的情况下工作(只需打印“一个”)。
所以我有点好奇为什么会发生这种情况以及我做错了什么。我通常认为自己是一个优秀的谷歌人,但我找不到任何类似的案例。我的头脑不喜欢你必须使用时间的例子,或者随机的例子。我想我必须看到更多实际的例子。
顺便说一句,在这样的类中放置一个while循环是“错误的”吗?它应该以某种方式在外面吗?我应该在我的RconProtocol
班级中创建线程吗?
希望这是足够的信息。
提前致谢!
/丹尼尔