Portál AbcLinuxu, 5. května 2025 09:19
Pomocí io_add_watch() můžeš zařídit, že se vyvolá událost pokaždé, když jsou na deskriptoru (sériovém portu) data. Žádné další vlákno není potřeba.
Dá se udělat všechno. Ale GUI (Gtk) je samo o sobě asynchronní, takže si lze často vystačit s jedním vláknem.
Řekněme, že se provádí nějaká funkce. No a zrovna v ten moment se vyskytne událost. Pak jsou dvě možnosti: buď je potřeba reagovat co nejrychleji (a pak je opravdu potřeba to řešit dalším vláknem) nebo postačí zareagovat až se funkce ukončí - jestli je to pár milisekund, tak to nikdo nepozná a ušetříš si práci.
Popiš konkrétní situaci. Možná, že bude doopravdy potřeba další vlákno, ale možná taky ne. Signály (jako například sigusr1) s tím vším souvisejí jen vzdáleně a prozatím je nekomentuju.
Přečti si: research.operationaldynamics.com/blogs/andrew/software/gnome-desktop/gtk-thread-awareness.html
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.