Multithreading mit C???
-
Boost hat doch ne Threading-Bibliothek die plattformunabhängig ist, oder täusche ich mich da jetzt? (Hab Boost bis jetzt noch (leider) nicht benutzt)
-
Es gibt boost für C?
-
pthreads
-
Thx, hab schon ein paar Tutorials von diversen UNI's uaf deutsch gefunden... schauen ganz gut aus!
-
TactX schrieb:
Es gibt boost für C?
Achja hab ich ganz überlesen. Aber wer weiß, wahrscheinlich programmiert er eh mit nem C++ Compiler und es ist wahrscheinlich eh egal, ob er nun ne C++ Lib oder ne C Lib verwendet.
-
nep schrieb:
Boost hat doch ne Threading-Bibliothek die plattformunabhängig ist, oder täusche ich mich da jetzt? (Hab Boost bis jetzt noch (leider) nicht benutzt)
Boost.Thread ist portierbar, aber nicht plattformunabhängig. Was ein riesen Unterschied ist.
-
nep schrieb:
TactX schrieb:
Es gibt boost für C?
Achja hab ich ganz überlesen. Aber wer weiß, wahrscheinlich programmiert er eh mit nem C++ Compiler und es ist wahrscheinlich eh egal, ob er nun ne C++ Lib oder ne C Lib verwendet.
nur dass man sich mit 'boost' unmengen (etliche megabytes) an krempel installieren muss. das ist es nicht wert.
@OP: für unix und clones (wie linux) gibbets das: http://www.llnl.gov/computing/tutorials/pthreads/
-
POSIX: nimm die funktion fork()
Is einfach zu benutzen und übernimmt KEINEN einzigen parameter!
-
sdfds schrieb:
POSIX: nimm die funktion fork()
Is einfach zu benutzen und übernimmt KEINEN einzigen parameter!
Ist also nutzlos.
-
ten schrieb:
nep schrieb:
TactX schrieb:
Es gibt boost für C?
Achja hab ich ganz überlesen. Aber wer weiß, wahrscheinlich programmiert er eh mit nem C++ Compiler und es ist wahrscheinlich eh egal, ob er nun ne C++ Lib oder ne C Lib verwendet.
nur dass man sich mit 'boost' unmengen (etliche megabytes) an krempel installieren muss. das ist es nicht wert.
@OP: für unix und clones (wie linux) gibbets das: http://www.llnl.gov/computing/tutorials/pthreads/Was ist was nicht wert?
Dass ich Tools habe die meine Arbeit ungemein erleichtern ist ein paar MB auf der Platte nicht wert?
Lol
-
Vor ich boost nehm kann ich gleich das original nehmen - Java.
-
erkenner schrieb:
Vor ich boost nehm kann ich gleich das original nehmen - Java.
Muahahaha. Mehr daneben gehts wohl nicht. Muahahaha
-
Apollon schrieb:
sdfds schrieb:
POSIX: nimm die funktion fork()
Is einfach zu benutzen und übernimmt KEINEN einzigen parameter!
Ist also nutzlos.
-
Plattformunabhängige ANSI C Thread Library: Protothreads
-
mastercpp schrieb:
Plattformunabhängige ANSI C Thread Library: Protothreads
Sind aber Userlevel Threads!
-
hustbaer schrieb:
ten schrieb:
nep schrieb:
TactX schrieb:
Es gibt boost für C?
Achja hab ich ganz überlesen. Aber wer weiß, wahrscheinlich programmiert er eh mit nem C++ Compiler und es ist wahrscheinlich eh egal, ob er nun ne C++ Lib oder ne C Lib verwendet.
nur dass man sich mit 'boost' unmengen (etliche megabytes) an krempel installieren muss. das ist es nicht wert.
@OP: für unix und clones (wie linux) gibbets das: http://www.llnl.gov/computing/tutorials/pthreads/Was ist was nicht wert?
Dass ich Tools habe die meine Arbeit ungemein erleichtern ist ein paar MB auf der Platte nicht wert?
Lolja, um 'nur' multithreading zu machen, ist 'boost' mit kanonen auf spatzen schiessen (es müsste eher 'bloat' heissen)
rüdiger schrieb:
mastercpp schrieb:
Plattformunabhängige ANSI C Thread Library: Protothreads
Sind aber Userlevel Threads!
zum selber schedulen.
gut z.b. wenn man kein multitasking-os hat...
-
ten schrieb:
hustbaer schrieb:
ten schrieb:
nep schrieb:
TactX schrieb:
Es gibt boost für C?
Achja hab ich ganz überlesen. Aber wer weiß, wahrscheinlich programmiert er eh mit nem C++ Compiler und es ist wahrscheinlich eh egal, ob er nun ne C++ Lib oder ne C Lib verwendet.
nur dass man sich mit 'boost' unmengen (etliche megabytes) an krempel installieren muss. das ist es nicht wert.
@OP: für unix und clones (wie linux) gibbets das: http://www.llnl.gov/computing/tutorials/pthreads/Was ist was nicht wert?
Dass ich Tools habe die meine Arbeit ungemein erleichtern ist ein paar MB auf der Platte nicht wert?
Lolja, um 'nur' multithreading zu machen, ist 'boost' mit kanonen auf spatzen schiessen (es müsste eher 'bloat' heissen)
Also mir geht es meistens eher darum wie einfach ich etwas programmieren kann, nicht darum wieviel Code das aus irgendwelchen Libraries mit reinzieht. Und Boost.Thread ist relativ einfach zu verwenden.
Ich meine, das selbe was du hier über Boost sagst, kann man über so ziemlich jede grössere Library sagen wenn man bloss ein kleines Problem damit angehen will. Trotzdem nehme ich die Cryptlib her wenn ich RSA oder RC4 oder "nur" MD5 braucht - ich hab schliesslich keine Lust das Rad jedes mal neu zu erfinden...Oder anders gesagt: was ist schlecht daran mit Kanonen auf Spatzen zu schiessen, wenn ich sie damit viel leichter treffe als mit meiner alten Steinschleuder?
-
ja, um 'nur' multithreading zu machen, ist 'boost' mit kanonen auf spatzen schiessen (es müsste eher 'bloat' heissen)
Wo ist'n das Problem, ins Programm wird eh nur das nötigste aufgenommen.
-
hustbaer schrieb:
Ich meine, das selbe was du hier über Boost sagst, kann man über so ziemlich jede grössere Library sagen wenn man bloss ein kleines Problem damit angehen will.
ja, stimmt auch. grosse libraries sind für grosse programme da
aber pc-coder scheinen ja keine hemmungen zu haben ihre programme fett und schwerfällig zu machen. ich weiss noch mein erstes mfc-programm: mehrere 100kb für eine popeliges fensterchen. hat mich voll von den socken gehauen.
oder mach mal mit mingw eine c++ konsolenanwendung, die ein paar std::strings und vectors benutzt - die wird riesig fett. ich will ja nicht gleich 'ne 3d-animation in 256 bytes packen, aber die verhältnisse müssen schon stimmen irgendwie...hustbaer schrieb:
Trotzdem nehme ich die Cryptlib her wenn ich RSA oder RC4 oder "nur" MD5 braucht - ich hab schliesslich keine Lust das Rad jedes mal neu zu erfinden...
brauchst ja nix neu erfinden. gerade für die crypto sachen gibts gut getestete referenzimplementierungen. da kann man einfach per copy+paste das nehmen, was man braucht...
-
ten schrieb:
hustbaer schrieb:
Ich meine, das selbe was du hier über Boost sagst, kann man über so ziemlich jede grössere Library sagen wenn man bloss ein kleines Problem damit angehen will.
ja, stimmt auch. grosse libraries sind für grosse programme da
aber pc-coder scheinen ja keine hemmungen zu haben ihre programme fett und schwerfällig zu machen. ich weiss noch mein erstes mfc-programm: mehrere 100kb für eine popeliges fensterchen. hat mich voll von den socken gehauen.
oder mach mal mit mingw eine c++ konsolenanwendung, die ein paar std::strings und vectors benutzt - die wird riesig fett. ich will ja nicht gleich 'ne 3d-animation in 256 bytes packen, aber die verhältnisse müssen schon stimmen irgendwie...Naja, das kommt darauf an finde ich. Bei vielen Sachen ist die Grösse einfach nicht relevant. Dafür sind andere Dinge wie Entwicklungszeit, Wartbarkeit etc. viel wichtiger. Wenn ich in meiner Firma etwas programmiere, und da irgendwo ein paar hundert KB spare, dafür aber 2-3 Tage länger braucht, und der Code schlechter wartbar und unübersichtlicher ist ... ganz einfach weil ich irgend eine Library nicht verwendet habe weil sie ja "so unnötig gross" ist, dann werde ich dafür ganz sicher kein Lob bekommen.
hustbaer schrieb:
Trotzdem nehme ich die Cryptlib her wenn ich RSA oder RC4 oder "nur" MD5 braucht - ich hab schliesslich keine Lust das Rad jedes mal neu zu erfinden...
brauchst ja nix neu erfinden. gerade für die crypto sachen gibts gut getestete referenzimplementierungen. da kann man einfach per copy+paste das nehmen, was man braucht...
Naja, wieder: bevor ich hergehen und mir eine Referenzimplementierung suche, und die dann per copy & past in mein Programm einbaue, nehme ich lieber die Cryptlib. Das Ding ist zwar riesig, aber dafür sind da ein riesen Haufen an Algorithmen implementiert, und wenn ich eines Tages statt MD5 mal SHA nehmen will, dann ist das eine Änderung von vielleicht 2-3 Zeilen, und das Ding läuft wieder 1:1 so wie vorher. Anderenfalls müsste ich mir dann nochmal eine Referenzimplementierung für SHA raussuchen, die evtl. noch anpassen (Compiler, Parameterübergabe etc.) -- was einfach viel länger dauert.
Aber eine ganz einfache Frage: was genau ist deiner Meinung nach der Nachteil von "zu grossen" oder "aufgeblasenen" Programmen -- bzw. der Vorteil vom kleinen Programmen? Irgendwas greifbares? Oder bloss weils deinem Sinn von Aesthetik besser entspricht?