我无法在与服务器的1个连接上启动2个独立线程。 我想在循环中运行2个函数,看起来它们是一个接一个地执行的。 是否有其他选项可以每x秒/分钟运行一次函数?你知道吗
穿线是好工具吗?你知道吗
import time
import datetime
from threading import Thread
def func1(ts3conn):
print(f"func 1, pause 2sec NOW:{datetime.datetime.now()}")
time.sleep(2)
def func2(ts3conn):
print(f"func2, pause 10sec NOW:{datetime.datetime.now()}")
time.sleep(10)
if __name__ == "__main__":
with ts3.query.TS3ServerConnection("telnet://serveradmin:passwod@1.2.3.4:10011") as ts3conn:
ts3conn.exec_("use", sid=1)
ts3conn.exec_("clientupdate", client_nickname="BOT")
while True:
Thread(target=func1(ts3conn)).start()
Thread(target=func2(ts3conn)).start()
func 1, pause 2sec NOW:2019-08-24 23:53:19.139951
func2, pause 10sec NOW:2019-08-24 23:53:21.141273
func 1, pause 2sec NOW:2019-08-24 23:53:31.141770
func2, pause 10sec NOW:2019-08-24 23:53:33.142568
func 1, pause 2sec NOW:2019-08-24 23:53:43.143090
func2, pause 10sec NOW:2019-08-24 23:53:45.143880
target
参数需要一个可调用的(即函数),但您正在传递调用该可调用函数的结果,而sleep
甚至在创建线程之前就发生了。你知道吗所以不是这样:
。。。尝试以下操作:
不幸的是,当您修复此问题时,您将遇到另一个问题:while循环不会在创建新线程之前等待线程完成,而是将继续创建新线程,直到应用程序崩溃。您可以尝试以下操作:
相关问题 更多 >
编程相关推荐