Forum: Compiler & IDEs "Multitasking" innerhalb einer Anwendung?


von Gerhard (Gast)


Lesenswert?

Hallo,

wie macht man folgendes: Auf einem embedded Linux läuft meine 
Applikation, die Daten graphisch auf einem LCD darstellt. Der Benutzer 
kann jetzt über Drehencoder den Zoom ändern oder große Datenmengen im 
Display hin- und herschieben. Jetzt können ja die Drehencoder sehr 
schnell Impulse generieren, schneller als die Zeichenroutine fertig ist. 
Das begrenzt für den Nutzer ziemlich nervig die maximale 
Geschwindigkeit, mit der er sich durch die Daten bewegt.

Ich hätte jetzt gerne eine Möglichkeit, die Zeichenroutine stumpf 
abzubrechen, wenn der Benutzer den nächsten Drehencoder-Impuls ausgelöst 
hat, ohne daß das Bild fertig aufgebaut ist. So wäre die 
Geschwindigkeit, mit der man sich durch die Daten bewegt, nicht 
begrenzt. Dreht man langsamer, wird das Bild sofort aufgebaut.

Gibt es sowas wie "Multitastink" innerhalb eines Programms?

Ach ja, ich nutze

Linux-2.6.24
directfb-1.0.1

und eine GNU Toolchain.

von Peter (Gast)


Lesenswert?

ja nennt sich Threads, aber dann sollte man genau wissen was man macht, 
damit sich beide Threads nicht in die quere kommen.

von Gerhard (Gast)


Lesenswert?

Aha, interessant, das Stichwort kommt mir bekannt vor.

Können Threads auch miteinander kommunizieren?

Da fällt mir noch eine andere Frage ein: Oft sind ja viele GUIs in 
GNU/Linux-Systemen nichts als Frontends für die darunterliegenden 
Unix-Tools. Wie bekommt man das eigentlich hin, daß diese Anwendungen 
einen Fortschrittsbalken anzeigen, während im Hintergrund ja ein 
einfaches Kommandozeilentool arbeitet? Die müssen ja auch irgendwie 
kommunizieren können.

Gruß
der Gerhard

von Peter (Gast)


Lesenswert?

> Können Threads auch miteinander kommunizieren?
die Threads sind ja keien eigene Prozesse, das ist alles innerhalb eines 
Prozesses - alle Thread können auf dem gesamten Speicher der Anwendung 
lesen und Schreiben - also auch auf Variablen gemeinsam zugreifen. 
(Genau dann hat man das Problem das man es nicht gleichzeitig lesen und 
schreiben sollte).
Aber man kann auch Klassisch mit IPC arbeiten.

Keine Ahnung wie das mit den Fortschritsbalken und kommandozeilen 
Programm gemacht wird.
Ich könnte mir vorstellen das die GIU nicht die Ausführbare Datei 
sondern die Libs nutzt und dort können auch Funktionen enthalten sein um 
soetwas zu bewerkstelligen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.