循环线程按顺序进入无限循环
Loop threads in sequence into infinite loop
我在启动第一个线程时遇到问题,等到第一个线程结束,启动第二个线程,等到第二个线程完成,然后再次转到第一个线程并在无限循环中执行此操作。
我得到的结果没有正常工作,因为它没有时间延迟地打印线程...
这是我的代码:
import threading
import time
def Thread1():
while True:
print("THREAD 1")
time.sleep(3)
def Thread2():
while True:
print("THREAD 2")
time.sleep(6)
Thread1 = threading.Thread(target = Thread1)
Thread2 = threading.Thread(target = Thread2)
Thread1.start()
Thread2.start()
Thread2.join()
我想要的结果是:
线程 1
(停顿 3 秒)
线程 2
(6 秒停顿)
线程 1
(停顿 3 秒)
线程 2
(6 秒停顿)
...(无限循环)
你可以和来自 threading library 的 Event
打乒乓球:
import threading
import time
ping = threading.Event()
pong = threading.Event()
def thread1():
while True:
ping.wait()
print("THREAD 1")
time.sleep(3)
ping.clear()
pong.set()
def thread2():
while True:
pong.wait()
print("THREAD 2")
time.sleep(6)
pong.clear()
ping.set()
t1 = threading.Thread(target = thread1)
t2 = threading.Thread(target = thread2)
t1.start()
t2.start()
ping.set()
t2.join()
这将创建两个事件 ping
和 pong
。当 ping
被触发时,第一个线程被允许 运行。当它完成时,清除事件并触发 pong
,允许第二个线程 运行,等等
不确定这是否是最好的方法,但它似乎有效。
我在启动第一个线程时遇到问题,等到第一个线程结束,启动第二个线程,等到第二个线程完成,然后再次转到第一个线程并在无限循环中执行此操作。
我得到的结果没有正常工作,因为它没有时间延迟地打印线程...
这是我的代码:
import threading
import time
def Thread1():
while True:
print("THREAD 1")
time.sleep(3)
def Thread2():
while True:
print("THREAD 2")
time.sleep(6)
Thread1 = threading.Thread(target = Thread1)
Thread2 = threading.Thread(target = Thread2)
Thread1.start()
Thread2.start()
Thread2.join()
我想要的结果是:
线程 1
(停顿 3 秒)
线程 2
(6 秒停顿)
线程 1
(停顿 3 秒)
线程 2
(6 秒停顿)
...(无限循环)
你可以和来自 threading library 的 Event
打乒乓球:
import threading
import time
ping = threading.Event()
pong = threading.Event()
def thread1():
while True:
ping.wait()
print("THREAD 1")
time.sleep(3)
ping.clear()
pong.set()
def thread2():
while True:
pong.wait()
print("THREAD 2")
time.sleep(6)
pong.clear()
ping.set()
t1 = threading.Thread(target = thread1)
t2 = threading.Thread(target = thread2)
t1.start()
t2.start()
ping.set()
t2.join()
这将创建两个事件 ping
和 pong
。当 ping
被触发时,第一个线程被允许 运行。当它完成时,清除事件并触发 pong
,允许第二个线程 运行,等等
不确定这是否是最好的方法,但它似乎有效。