首页 > 解决方案 > python中的简单多线程无法按预期工作

问题描述

我设法想出了以下代码,这将允许我查询一个数据文件两次,同时查询不同的信息。但是,它似乎没有工作。谁能发现我在这里做错了什么?

print('Start')
def getAllTimes(arg1):
    task1 = arg1
    if task1 == 1:
        textfile = open(logfile, 'r')
        filetext = textfile.read()
        textfile.close()
        matchesBegin = beginStr in filetext
        matchesEnd = endStr in filetext
        return(matchesBegin,matchesEnd)
    elif task1 == 2:
        AllTimeStamps = [ x.split(' ')[0][1:-1] for x in open(logfile).readlines() ]
        AllUniqTimeStamps = set(AllTimeStamps)
        return AllUniqTimeStamps
etime = 0
AllTimes = []
for etime in range(1,2):
    AllTimeZ = threading.Thread(target=getAllTimes, args=[etime])
    AllTimes.append(AllTimeZ)
    AllTimeZ.start()
for TheTimes in AllTimes:
    TheTimes.join()
    print TheTimes
print('Done')

上面的代码运行后,我想确保我可以查询函数中创建的任何变量的内容。我所说的变量是指: matchesBegin, matchesEnd, AllUniqTimestamps

标签: pythonpython-3.xmultithreadingpython-multithreading

解决方案


推荐阅读