使用线程同时运行两个while循环的简单方法?

时间:2013-09-12 20:09:19

标签: python python-3.x

我已经查看了之前的所有答案,对于像我这样的初学者来说,它们太复杂了。我想在同时循​​环运行。例如,我想同时运行这两个:

def firstFunction():
    do things

def secondFunction():
    do some other things

正如我所说,其他答案太复杂,我无法理解。

3 个答案:

答案 0 :(得分:5)

假设你的while循环在你列出的函数中,这是我能想到的最简单的方法。

from threading import Thread

t1 = Thread(target = firstFunction)
t2 = Thread(target = secondFunction)

t1.start()
t2.start()

正如tdelaney指出的那样,这样做只会启动每个线程并立即继续前进。如果在运行程序的其余部分之前需要等待这些线程完成,可以使用.join()方法。

答案 1 :(得分:2)

这是一个非常基本的线程类,可以帮助您启动并运行。

from threading import *

class FuncThread(threading.Thread):
    def __init__(self, target, *args):
        self._target = target
        self._args = args
        threading.Thread.__init__(self)

    def run(self):
        self._target()

要使用它:

ThreadOne = FuncThread(firstFunction())
ThreadOne.start()
secondFunction()
ThreadOne.join()

这应该让你非常接近。你将不得不玩它以使它在你的场景中工作。小心运行那些多个while循环,确保构建一个出口。线程很难,但请尽量在文档中阅读,并尽可能让我为你提供的工作。

http://docs.python.org/2/library/threading.html

答案 2 :(得分:2)

使用thread模块:

import thread
def firstFunction():
    while some_condition:
       do_something()

def secondFunction():
    while some_other_condition:
       do_something_else()

thread.start_new_thread(firstFunction, ())
thread.start_new_thread(secondFunction, ())