我有一个项目,线程A在某个套接字上调用Accept(...),然后将它传递给另一个线程,该线程在套接字上接收并关闭套接字。多线程套接字
线程A中调用accept的对象永远不会关闭。是否安全?
线程A中的对象会发生什么?
我有一个项目,线程A在某个套接字上调用Accept(...),然后将它传递给另一个线程,该线程在套接字上接收并关闭套接字。多线程套接字
线程A中调用accept的对象永远不会关闭。是否安全?
线程A中的对象会发生什么?
一个套接字不是一个对象 - 它只是一个数字(或可以想象的指针)。如果你从一个线程传递一个整数到另一个线程,没有问题 - 与套接字相同。这假定你问的是操作系统级别的套接字,而不是你或你正在使用的框架实现的某个套接字类,而你只能从其中一个线程访问套接字,这似乎就是这种情况。
是的,它会关闭。但是,这不能确保不使用的插座是立即可进行垃圾回收(ThreadA中参考)
套接字&线程,几个黄金法则...
这按理说应该有一个标签指示的平台(如POSIX)的数据进行工作,因为无论是插座也不穿是标准C++的一部分。一个套接字可以用一个特定于线程的句柄来表示,它不能在其他线程中有效地使用。 SymbianOS默认情况下是这种情况。哪一个不是合适的C++,但是没有什么可以阻止BSD风格的套接字实现在一些恰当的C++中,从做同样的事情。 – 2010-05-31 15:57:14