Funktionen synchrone abarbeiten



  • Hi Leute!

    Wie der Titel schon verät möchte ich zwei unterprogramme "gleichzeitig" ausführen bzw eine Funktion die eine Endlosschleife enthält immer im HIntergrund ausführen geht das?



  • Mit Standardmitteln geht das nicht (zumal dein Prozessor sowieso nur eine Anweisung gleichzeitig ausführen kann), aber moderne Betriebssysteme verwenden Threads, die quasiparallel ausgeführt werden können.



  • Bauarbeiterjoe schrieb:

    Wie der Titel schon verät möchte ich zwei unterprogramme "gleichzeitig" ausführen bzw eine Funktion die eine Endlosschleife enthält immer im HIntergrund ausführen geht das?

    du kannst es so machen, dass keine funktion eine endlosschleife ausführt somndern die schleife befindet sich in der 'main' und beide funktionen merken sich nur ihren zustand, damit sie beim nächsten aufruf genau da weitermachen.
    beispiel:

    void f1 (void)
    {
       static int state = 0;  // zustand bleibt erhalten: 'static'
       printf ("f1: %d\n", state * 2);
       // ...mach noch was
       state++;               // nächsten zustand einnehmen
    }
    
    void f2 (void)
    {
       static int state = 0;
       printf ("f2: %d\n", state * state);
       state++;
    }
    
    void main() 
    { 
       for(;;)  // hier ist die endlosschleife
       {
          f1();
          f2();
          // ... hier weitere funktionen rein
       }
    }
    

Anmelden zum Antworten