"Multitasking" innerhalb einer Anwendung?

Gast #986977
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.
Gast
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
Gast
> 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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.