| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1293 人关注过本帖
标题:python多线程问题
只看楼主 加入收藏
xing5156
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2020-6-11
收藏
 问题点数:0 回复次数:1 
python多线程问题
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册

程序代码:
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一直输出;请教一下 为啥只有一个线程在执行?哪里的问题?
搜索更多相关主题的帖子: python 多线程 线程 Test Lock 
2020-06-11 11:52
fall_bernana
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:17
帖 子:243
专家分:2106
注 册:2019-8-16
收藏
得分:0 
回复 楼主 xing5156
有什么问题?程序运行没有违背程序的逻辑.如果你想他们依次执行可以在pt下的while 循环外加个time.sleep(1)
2020-06-15 15:28
快速回复:python多线程问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018240 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved