threads in ANSI C möglich?



  • hi folks!

    simple frage: kann man in ANSI C threads programmieren?
    wenn ja, wie?
    oder geht das nur in CPP?

    grüsse,

    ---loki



  • Der C Standard enthält darüber keine Angaben. Aber mit der System eigenen API oder irgend welchen Wrappern ist das natürlich möglich.

    CPP? C Pre Prozessor? Nein, der kann keine Threads.



  • kingruedi schrieb:

    CPP? C Pre Prozessor? Nein, der kann keine Threads.

    Ich glaube er meint damit C++



  • supertux schrieb:

    Ich glaube er meint damit C++

    Auch das kennt keine Threads.



  • stimmt, ich meinte eigentlich C++. sorry.

    thanx für die infos.

    grüsse,

    ---loki



  • @loki
    Also ich kann mich da an die Funktion _beginthread() erinnern unter C. Allerdings ist das hald system-, wenn nicht sogar, compilerspezifisch (ich hatte den Borland Compiler 5.02).



  • Also bitte klärt mich mal auf...Ich habs so gelernt das threads nichts anderes sind als Funktionen in einem Programm.Multiple threads sind also mehrere gleichzeitig ablaufende threads(funktionen)z.b.ein Webbrowser,ein thread fürs Scrollen und einen für das darstellen der Seite...Dann kann doch eigendlich Ansi C und C++ folglich threads verstehen?Oder hab ich da was falsch verstanden?



  • c-neuling schrieb:

    Also bitte klärt mich mal auf...Ich habs so gelernt das threads nichts anderes sind als Funktionen in einem Programm.Multiple threads sind also mehrere gleichzeitig ablaufende threads(funktionen)z.b.ein Webbrowser,ein thread fürs Scrollen und einen für das darstellen der Seite...Dann kann doch eigendlich Ansi C und C++ folglich threads verstehen?Oder hab ich da was falsch verstanden?

    kann mir da jemand drauf antworten der was davon versteht?möchte wissen ob ich das so richtig gelernt hab oder ob es falsch ist...Damn_ke!



  • @c-neuling
    Stimmt schon, threads sind eigentlich Programmcode meist verschiedener Funktionen, die scheinbar gleichzeitig abgearbeitet werden.
    Aber was heißt, dass C bzw. C++ threads verstehen? C(++) weiß nicht was ein Thread ist. Es gibt zwar Bibliotheken für C(++), die es ermöglichen Threads laufen zu lassen, aber darin befinden sich höchstwahrscheinlich nur APIs zum Betriebssystem, die es erst ermöglichen Threads laufen zu lassen. Im Detail: Du übergibst einer API die Adresse deiner Thread-Funktion, diese API merkt sich die Adresse und ruft sie dann abwechselnd mit anderen Threads auf (mal einfach ausgedrückt).

    Im normalen Sprachumfang von C(++) sind Threads allerdings nicht enthalten.



  • @AJ:Danke!irgendwie versteh ich das nicht...kann man c(++)nicht dazu veranlassen das es threads versteht?z.b progge ich eine funktion,die einen bestimmten rückgabewert hat.wenn ich jetzt z.b mit einer schleife angebe wenn der rückgabe wert vorhanden ist dann soll eine andere funktion starten ist das doch auch irgendwie thread erkennung?oder nicht?



  • Nein, das ist ganz normaler Programmfluss.


Anmelden zum Antworten