thread safeness



  • hallo,

    was muss ich beachten, wenn ich thread-safe programmieren will? vor allem, sind funktionen, die nur lokale variablen benutzen immer thread safe?



  • Combo Breaker schrieb:

    hallo,

    was muss ich beachten, wenn ich thread-safe programmieren will? vor allem, sind funktionen, die nur lokale variablen benutzen immer thread safe?

    ja. Probleme gibt es nur, wenn threads auf gemeinsame Ressources zugreifen. Lokale Variablen sind keine gemeinsame Ressources außer lokalen static Variablen, die eher eine gemeinsame Ressource darstellen. Die Faustregel lautet also dann: bei Nebenläufigkeit musst du mittels mutex/samphores den Zugriff auf gemeinsame Ressources schützen.



  • Combo Breaker schrieb:

    safeness

    supertux schrieb:

    Ressources

    Wären die deutschen Wörter so schlimm? Dann vermeidet man wenigstens so peinliche Fehler.



  • ja. Probleme gibt es nur, wenn threads auf gemeinsame Ressources zugreifen. Lokale Variablen sind keine gemeinsame Ressources außer lokalen static Variablen, die eher eine gemeinsame Ressource darstellen. Die Faustregel lautet also dann: bei Nebenläufigkeit musst du mittels mutex/samphores den Zugriff auf gemeinsame Ressources schützen.

    Ist das auch irgendwo garantiert? Gibt es Fälle, in denen der Übersetzer nicht-strangsicheren Kode generiert, obwohl ich nur auf örtlichen Veränderlichen operiere?

    Michael E. schrieb:

    Combo Breaker schrieb:

    safeness

    supertux schrieb:

    Ressources

    Wären die deutschen Wörter so schlimm? Dann vermeidet man wenigstens so peinliche Fehler.

    Puh, gut dass ich unreg bin. hab' wohl im vorraus gedacht.



  • Combo Breaker schrieb:

    Ist das auch irgendwo garantiert? Gibt es Fälle, in denen der Übersetzer nicht-strangsicheren Kode generiert, obwohl ich nur auf örtlichen Veränderlichen operiere?

    ich verstehe deine Frage gar nicht.

    Michael E. schrieb:

    Combo Breaker schrieb:

    safeness

    supertux schrieb:

    Ressources

    Wären die deutschen Wörter so schlimm? Dann vermeidet man wenigstens so peinliche Fehler.

    wenn ich einen deutschen Begriff parat hätte, hätte ich ihn verwendest. Ansonsten darfst du auch gerne korrigieren und nicht nur meckern.



  • Combo Breaker schrieb:

    ja.

    [...]

    Lokale Variablen sind keine gemeinsame Ressources außer lokalen static Variablen, die eher eine gemeinsame Ressource darstellen.

    Ist das auch irgendwo garantiert? Gibt es Fälle, in denen der Übersetzer nicht-strangsicheren Kode generiert, obwohl ich nur auf örtlichen Veränderlichen operiere?

    Das ergibt sich einfach daraus, daß automatische Variablen auf dem Stack angelegt werden und jeder Thread seinen eigenen Stack bekommt.



  • supertux schrieb:

    Michael E. schrieb:

    supertux schrieb:

    Ressources

    Wären die deutschen Wörter so schlimm? Dann vermeidet man wenigstens so peinliche Fehler.

    wenn ich einen deutschen Begriff parat hätte, hätte ich ihn verwendest. Ansonsten darfst du auch gerne korrigieren und nicht nur meckern.

    Ressourcen? Ne, das wär zu einfach 😉


Log in to reply