Python多处理Jits

2024-09-29 17:45:32 发布

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

我正试图执行这样一个多处理程序

recQ = eventQ = Queue()

def _getRecords():
    files=os.listdir(LOGDIR)
    for file in files:
       fileHeader = open(os.path.join(LOGDIR,file))
       reader = logf.LogfileReader(fileHeader)
       data = defaultdict(lambda: defaultdict(int))
       for record in fileHeader.readlines():
           recQ.put(record)                  
    recQ.put('Done')

def _makeEvents():
    while(True):
        rec = recQ.get()
        if not rec == 'Done':
            e = event._getOject(rec)
            eventQ.put(e)
        else: break
    eventQ.put('Done')

def _updateSQL():
    while(True):
        data = eventQ.get()
        if not data == 'Done':
            event = eventQ.get()
            sql._updateEvent(event)
        else: break

def _trigger():
    processes = []
    processes.append(Process(target = _getRecords(), args = ()))
    processes.append(Process(target = _makeEvents(), args = ()))
    processes.append(Process(target = _updateSQL(), args = ()))
    for process in processes:
        process.start()

if __name__ == '__main__':
    _trigger()

现在的问题是,当我从for循环启动所有进程时,它们会一个接一个地被执行。我在一些简单的数据上尝试了一个类似的例子,它可以很好地工作。有人能告诉我我的代码有什么问题吗

提前感谢:)


Tags: ineventfordatagetifputdef

热门问题