Thread-safety von Sockets?



  • Hi,

    ich hab hier einige Beispiel-source-codes in denen viel mit Sockets gearbeitet wird. Einmal mit lokalen UNIX-Dateisockets und auch mit TCP-Sockets.

    Nun müsste es nach meinem erachten zu Race-Condition gekommen, da die sockets eig. gleichzeitig lesen bzw. schreiben können - nun wunderte ich mich jetzt ob das unsauber programmiert ist, oder ob die socket api thread safe ist.

    Kann mir da jemand was zu sagen?



  • Du redest wirres Zeug.

    Ansonsten: Sockets sind Systemressourcen. Der Zugriff von mehreren Threads muss synchronisiert werden.



  • Ok,

    ich hätte gedacht, dass lesen und schreiben getrennte operationen (oder Kanäle)sind. Weswegen es unkritisch ist, wenn der eine Thread den Socket lesen verwendet und der andere hineinschreibt. Da da die Daten auf zwei Kanälen laufen und somit nicht kollidieren, bzw. die Gefahr besteht, dass der eine dem anderen die Daten kaputt schreibt, wenn er grade liest.


Log in to reply