Zaczynam od wielu wątków w pythonie (a przynajmniej jest możliwe, że mój skrypt tworzy wiele wątków). czy ten algorytm byłby właściwym użyciem Mutexa? Nie testowałem jeszcze tego kodu i prawdopodobnie nawet nie zadziała. Chcę tylko, aby processData działał w wątku (jeden na raz) i głównej pętli while, aby kontynuować działanie, nawet jeśli istnieje wątek w kolejce.Właściwe użycie muteksów w Pythonie
from threading import Thread
from win32event import CreateMutex
mutex = CreateMutex(None, False, "My Crazy Mutex")
while(1)
t = Thread(target=self.processData, args=(some_data,))
t.start()
mutex.lock()
def processData(self, data)
while(1)
if mutex.test() == False:
do some stuff
break
Edycja: ponowne czytanie mojego kodu Widzę, że jest rażąco źle. ale hej, dlatego tu jestem, prosząc o pomoc.
To jest bardzo trudne, aby dowiedzieć się, co próbujesz zrobić. Musisz dokładniej wyjaśnić swoje zamiary. –
@Marcelo Cantos, przepraszam, prawdopodobnie masz rację. Chcę, aby mój kod w processData zaczął się w nowym bieżniku. Chcę tylko jeden wątek, aby móc przetwarzać dane w czasie i w kolejności, w której dane zostały wysłane do przetwarzania danych. Chcę również, aby pętla main while pozostała w pętli, podczas gdy inne wątki są w kolejce. – Richard
@Richard: Dlaczego chcesz używać wątków, jeśli mimo wszystko masz zamiar serializować całe przetwarzanie? Co jest nie tak z prostą pętlą? Ponadto, dlaczego główny wątek ma pozostać w pętli? Po prostu wypali procesor, prawdopodobnie głodząc inne wątki. –