我是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