Хочется прояснить для себя пару вопросов про QThread
1) Имею класс вида
Python
class myThread(QThread):
def __init__(self, param):
QThread.__init__(self)
self._param = param
def myFunc(self):
"long operation used self._param"
def run(self):
self.myFunc()
В каком потоке будет запущена функция myFunc? C одной стороны она вызывается из run, с другой стороны, объект создавался в основном потоке.
2. Скажем есть такой класс - пускатель потоков
Python
class myClass(QObject):
def __init__(self):
QObject.__init__(self)
self.threadsCount = 0
def startThread(self):
thread = myThread()
self.connect(thread, SIGNAL("finished()"), self.threadFinished)
self.threadsCount += 1
thread.start()
def threadFinished(self):
self.threadsCount -= 1
Надо защищать переменную threadsCount мютексами? Или т.к. сигналы в данном случае ассинхронные, то это не нужно?