class ThreadPool(QObject): thread_count_changed = pyqtSignal(int) def __init__(self, thr_class, need_mutex = True): ''' Ключевые аргументы: thr_class - Ссылка на класс потока Необязательные аргументы: need_mutex = True Нужен ли мьютекс ''' QObject.__init__(self) if need_mutex: self.mutex = QMutex() else: self.mutex = None self.thr_class = thr_class def init_pool(self, count = 1, other_params = {}): ''' Инициализирует пул потоков. Необязательные аргументы: count = 1 - Количество потоков. other_params = {} Хэш в котором ключ это атрибут класса потока, а значение значения для данного атрибута класса потока. ''' for sch in range(count): if not self.mutex is None: self.pool.append(self.thr_class(self.mutex)) #Передача ссылки на мьютекс в поток
class MyThread(QtCore.QThread): mutex = QtCore.QMutex()
И если у кого есть скиньте линк на полный список атомарных операций в python