Python QThread在运行两次时如何工作?

Python QThread在运行两次时如何工作?,python,python-2.7,pyqt,pyside,qthread,Python,Python 2.7,Pyqt,Pyside,Qthread,在另一类中: self.workerThread = WorkerThread() def startThread(): self.workerThread.setGameName("pizza") self.workerThread.start() QThread类: class WorkerThread(QThread): def _init_(self, parent = None): super(WorkerThread, self)._ini

在另一类中:

self.workerThread = WorkerThread()

def startThread():
    self.workerThread.setGameName("pizza")
    self.workerThread.start()
QThread类:

class WorkerThread(QThread):
    def _init_(self, parent = None):
        super(WorkerThread, self)._init_(parent)
        self.gameName = ""

    def setGameName(self, currGameName):
        self.gameName = currGameName

    def run(self):
        #do something with self.gameName
大体上:

startThread()
startThread()
当我运行这个时,它使用第一次调用的游戏名,而不是第二次调用的游戏名。函数调用似乎是交错的。有人能解释Qthread是如何工作的吗?如何为startThread()的每个单独函数调用设置游戏名?

如果在
QThread
上调用了两次
start()
,则如果线程仍在运行,则第二次调用将不起任何作用。看起来这很有可能发生,如果不是,那只是运气使然