Portál AbcLinuxu, 19. března 2024 03:58
Zdravím,
zkouším něco vytvořit v PyQt4 a mám problémy se serializací přístupu k datům.
Přiložený program názorně demonstruje problém.
Po spuštění na mém počítači přestane hlavní okno reagovat po vypsání první hlášky reagovat. Nevíte, kde je problém?
Do pythonu ani Qt nedělám, takže si jen tipnu.
Pokud ten timer funguje tak, že se v daných intervalech vždy přeruší aktuální činnost a spustí se jeho obsluha, tak tam je deadlock. Tzn. když máte locknuto a něco děláte, tak vás jiný kód přeruší a bere ten samý lock. Takže nový čekatel vísí a čeká až bude lock volný, ale zároveň vám vzal šanci ho uvolnit.
QThread::sleep
je cas v sekundach, takze nez se prvni vlakno probere, pockate si 2,5 minuty. A po celou dobu drzi zamek, proto se nic nedeje.
Ahoj, je to tak, částečně. Když jsem ty zámky odstranil, tak se to chovalo stejně špatně. Nakonec jsem to ale vyřešil (po dvou dnech jsem našel člověka, který to hodinu řešil), v případě zájmu přidám funkční příklad .
Tiskni Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.