Python线程类

时间:2016-02-12 13:52:11

标签: python multithreading user-interface

我是Python线程的新手,我正在寻找有关如何在一个应用程序上实现多线程处理的指导,这两个类需要并行运行的GUI和weblogic。

GUI类是关于用户交互的,并且将具有类似“如果你点击这里运行这个weblogic方法”的代码。 GUI必须位于自己的线程中,因为weblogic方法可能很慢,因此等待它完成将导致GUI看起来没有响应。好消息是GUI代码无法修改weblogic线程中的任何数据,因此锁定不是问题。 (GUI只使用适当的变量调用weblogic方法,然后处理结果输出。)

Web逻辑类包含多个方法和构造函数,并且某些方法运行起来可能非常耗时。该类还包括对类中所有方法至关重要的构造函数。 (想想用户ID,密码,API访问URL等)

所以我想要实现的是一种并行实例化两个线程的方法。因此,GUI将在其自己的线程中运行,并向weblogic线程发出命令,该线程将相应地响应。

我开始查看Threading模块,虽然我已经将它用于简单的函数,但我还没有成功地在一个线程中运行整个类。由于我是所有这一切的新手,我正在寻找正确战略的指导。我应该使用线程吗?有更好的方法吗?

这是一些伪代码来说明我想要完成的任务:

GUI代码:

class GUI():
    def createGUI(self):
        # create GUI layout here

    def button1(self):
        # if clicked
        outputtodisplay = weblogic.filelist()
        # display outputtodisplay

    def button2(self)
        # if clicked assume that we have a file selector box which provides a filename
        weblogic.uploadfile(filename)
        # show an upload success indicator

的Weblogic:

class weblogic():
    def __init__(self, count, instance):
        # run some stuff to setup
        self.uid = xxx
        self.pwd = yyy
        self.url = zzz

    def listfiles():
        # get file list using uid, pwd, url
        return output

    def uploadfile(self,filename):
        # upload file using uid, pwd, url
        return success/failure

0 个答案:

没有答案