如何在Python中同时执行多项操作(2.7.12)(线程化?)

时间:2016-11-14 05:42:17

标签: python-2.7 python-multithreading

我正在试图弄清楚如何加载一个长python程序并同时运行加载动画。我环顾四周并发现了线程,但我还没有找到如何使用线程来做到这一点。

修改:我的代码https://gyazo.com/adb1f0a77d58ba89c9b133972bc17d03

1 个答案:

答案 0 :(得分:0)

您的编码在此学校计算机上被屏蔽,因此我还没有看到提供的编码,但我仍然可以提供帮助。您可以使用内置的Python Thread模块来执行此操作。

首先,您需要将加载动画放入函数中。将此动画放在while循环中,当变量终止时,让我们使用 loadingfinished ,为True。

def loading_animation():
    global loadingfinished # may or may not be needed
    while not loadingfinished:
        #insert code here

创建此功能后,您可以将loadedfinished设置为零。

现在,在确定模块"线程"导入后,您可以输入

thread.start_new(loading_animation, ())

这会将loading_animation作为新线程启动,不带参数。在此之后,您将获得正常的代码,即需要加载的内容。

完成加载代码后,只需将loadedfinished设置为True即可!这就是您的代码应该是这样的:

import thread

def loading_animation():
    global loadingfinished # may or may not be needed
    while not loadingfinished:
        #insert animation code here

loadingfinished = False
thread.start_new(loading_animation, ())

#insert loading code here

loadingfinished = True
#This by itself causes the separate thread to terminate.

#You may want to put a delay of a tenth of a second or so here,
#to make extra sure the other thread is terminated before you continue.

多线程是一个很好的学习方法,特别是在Python中,因为它是一种缓慢的语言。我通常喜欢将我的blitting和计算分成不同的线程。这几乎可以使你的程序性能提高一倍!

您可以在此处了解有关线程模块的更多信息: https://docs.python.org/2/library/thread.html#module-thread

我无法测试此代码,因此如果有任何错误,请在下面的评论中告诉我。