注册 登录
编程论坛 Python论坛

python多线程问题

xing5156 发布于 2020-06-11 11:52, 1414 次点击
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录

程序代码:

from threading import Lock, Thread
import time

class Test():
    def __init__(self):
        self.countFlag = 0
        self.testList = []
        self.lock = Lock()
        for i in range(10000):
            self.testList.append(i)

    def pt(self, name):
        print(name)
        while self.countFlag < len(self.testList):
            self.lock.acquire()
            print(self.testList[self.countFlag])
            # time.sleep(1)
            self.countFlag += 1
            self.lock.release()

if __name__ == "__main__":
    test = Test()
    thdList = []
    for i in  range(5):
        t = Thread(target=test.pt, args=("线程" + str(i) + '\n',))
        t.setDaemon(True)
        thdList.append(t)
        t.start()
    for t in thdList:
        t.join()


线程1执行输出了一个0,其他线程都没输出,后面就线程4一直输出;请教一下 为啥只有一个线程在执行?哪里的问题?
1 回复
#2
fall_bernana2020-06-15 15:28
回复 楼主 xing5156
有什么问题?程序运行没有违背程序的逻辑.如果你想他们依次执行可以在pt下的while 循环外加个time.sleep(1)
1