我有一個項目,線程A在某個套接字上調用Accept(...),然後將它傳遞給另一個線程,該線程在套接字上接收並關閉套接字。多線程套接字
線程A中調用accept的對象永遠不會關閉。是否安全?
線程A中的對象會發生什麼?
我有一個項目,線程A在某個套接字上調用Accept(...),然後將它傳遞給另一個線程,該線程在套接字上接收並關閉套接字。多線程套接字
線程A中調用accept的對象永遠不會關閉。是否安全?
線程A中的對象會發生什麼?
一個套接字不是一個對象 - 它只是一個數字(或可以想象的指針)。如果你從一個線程傳遞一個整數到另一個線程,沒有問題 - 與套接字相同。這假定你問的是操作系統級別的套接字,而不是你或你正在使用的框架實現的某個套接字類,而你只能從其中一個線程訪問套接字,這似乎就是這種情況。
是的,它會關閉。但是,這不能確保不使用的插座是立即可進行垃圾回收(ThreadA中參考)
套接字&線程,幾個黃金法則...
這按理說應該有一個標籤指示的平臺(如POSIX)的數據進行工作,因爲無論是插座也不穿是標準C++的一部分。一個套接字可以用一個特定於線程的句柄來表示,它不能在其他線程中有效地使用。 SymbianOS默認情況下是這種情況。哪一個不是合適的C++,但是沒有什麼可以阻止BSD風格的套接字實現在一些恰當的C++中,從做同樣的事情。 – 2010-05-31 15:57:14