通过线程实现奇偶数打印的同步

2024-03-28 12:02:19 发布

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

此代码将输出显示为

0 1 3 2 5 4 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20

无法判断错误。我们想把输出作为

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

代码:

from threading import Thread, Lock

from time import sleep

mylock1 = Lock()
#mylock2 = Lock()

def evenprint ( uservalue):#dunder __init__
    for i in range(0,uservalue,2):
        sleep(1)
        mylock1.acquire(True)
        print(i,end=' ')
        mylock1.release()
def oddprint(uservalue):
    for i in range(1,uservalue,2):
        sleep(1)
        mylock1.acquire(True)
        print(i,end=' ')
        mylock1.release()

variable=21
t1= Thread(target=evenprint,args=(variable,))
t2= Thread(target=oddprint,args=(variable,))

t1.start()
t2.start()

Tags: 代码infromimportlockfordefrange