Jeder kennt das klassische Modell eines Prozesses, der nach Verbindungen auf einem Socket lauscht und einen neuen Prozess für jede neue Verbindung abfängt. Üblicherweise ruft der Elternprozess sofort close
auf dem neu erstellten Socket auf, wodurch die Anzahl der Handle verringert wird, sodass nur das Kind über einen Handle für den neuen Socket verfügt.Erzeugt ein neuer Thread doppelte Dateideskriptoren und Socketdeskriptoren in Linux?
Ich habe gelesen, dass die einzige Unterschied zwischen einem Prozess und einem Thread in Linux ist, dass Threads den gleichen Speicher teilen. In diesem Fall nehme ich an, dass das Erstellen eines neuen Threads, um eine neue Verbindung zu behandeln, auch die Dateideskriptoren dupliziert und außerdem den "übergeordneten" Thread benötigt, um die Kopie des Sockets zu schließen.
"Ich habe gelesen, dass der einzige Unterschied zwischen einem Prozess und einem Thread in Linux ist, dass Threads den gleichen Speicher teilen. *" Es gibt viele andere Unterschiede zwischen Prozessen und Threads. Zum Beispiel können Prozesse mehr als einen Thread enthalten. –