3

我已经浏览了所有以前的答案,对于像我这样的初学者来说,它们都太复杂了。我也想同时运行while循环。例如,我想同时运行这两个:

def firstFunction():
    do things

def secondFunction():
    do some other things

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

4

3 回答 3

9

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

from threading import Thread

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

t1.start()
t2.start()

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

于 2013-09-12T20:19:57.917 回答
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, ())
于 2013-09-12T20:32:23.417 回答
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

于 2013-09-12T20:17:29.017 回答