Multithreading in C



  • Wie ist das in C möglich? Habt ihr da vllt. ein paar gute Infos für mich bzw.
    gute Tutorials oder was auch immer?

    mfg SirLant



  • mit ANSI C geht das nicht. Du musst schon irgend welche Librarys benutzen, die Systemabhängig sind.

    Wenn du Linux oder andere (mehr oder weniger) POSIX kompatible Systeme benutzt, solltest du mal in die Unix/Linux FAQ gucken.



  • Ok danke, finde ich da auch was über Multithreading allgemein?
    Würd mich auch Interressieren wie sowas realisiert wird.
    Könnte mir vorstellen, dass es so wie beim Multithreading vom OS passiert, die
    Funktionen intern alle für kurze Zeit laufen und so eben eine "gleichzeitigkeit"
    realisiert wird.
    Ist dem so?

    Edit:
    Wo finde ich das in der FAQ denn?



  • ist so 😃
    Die CPU Zeit die ein Prozess zur verfügung hat teilt unter seinen Threads auf. Je nach Priorität bekommt jeder Thread mehr oder weniger davon ab. Das OS führt nun Thread 1 aus bis der seine Zeit verbraucht hat, speichert den Inhalt der Prozessorregister und führt den Code von Thread 2 aus. Das geht nun einmal die runde bis wierder Thread 1 dran ist. Jetzt werden die vorhin gespeicherten Prozessorregister wieder geladen. Da Stackpointer, Befehlsregister ect. in nem eignen Prozessorregister stehen, läuft der code nun genau dort wieder weiter wo er vorhin aufgehört hat, bis er seine Zeit wieder verbraucht hat 😉


Anmelden zum Antworten