“使用两个线程编写程序,其中一个以递增顺序写入偶数,另一个以递增顺序写入奇数。”例如,给出10个我想要的输出
T1-0
T2-1
T1-2
T2-3
...
T1-8
T2-9我认为应该使用一个事件对象,以便在线程的打印和另一个线程之间交替使用,但是我不知道如何实现它以使它工作,因为我认为我还没有完全掌握处理线程的工具。我把我的错误代码留在这里
import threading
e = threading.Event()
def even(n):
if e.isSet() == False:
for i in range(0,n,+2):
e.set()
print(i)
e.clear()
e.wait()
def odd(n):
for i in range(1,n,+2):
e.wait()
print(i)
e.set()
t1 = threading.Thread(target = odd, args=(10,))
t2 = threading.Thread(target = even, args=(10,))
t1.start()
t2.start()
t1.join()
t2.join()发布于 2022-04-25 17:15:20
import threading
import time
def thread_function(name,max,y):
print(name,y)
time.sleep(0.1)
for i in range(int(max/2)):
time.sleep(0.3)
y= y + 2
print(name,y)
n = input("Input an integer \n")
n = int(n)
p=0
# Create thread
mt1 = threading.Thread(target=thread_function, args=("T-Even",n,p))
mt2 = threading.Thread(target=thread_function, args=("T-Odd",n,p+1))
# Start thread
mt1.start()
time.sleep(0.1)
mt2.start()
mt1.join()https://stackoverflow.com/questions/70393962
复制相似问题