我有一个项目,其中线程A在某个套接字上调用Accept(...),然后将其传递给另一个线程,在套接字上执行接收操作,然后关闭套接字。
在线程A中调用accept的对象没有关闭。这样安全吗?
在线程A中发生了什么?
我有一个项目,其中线程A在某个套接字上调用Accept(...),然后将其传递给另一个线程,在套接字上执行接收操作,然后关闭套接字。
在线程A中调用accept的对象没有关闭。这样安全吗?
在线程A中发生了什么?
套接字不是一个对象——它只是一个数字(或者可以是一个指针)。如果你将一个整数从一个线程传递到另一个线程,就没有问题了——同样的情况也适用于套接字。这假设你正在询问操作系统级别的套接字,而不是你或你正在使用的框架实现的某个套接字类,并且你只从其中一个线程访问套接字,这似乎是个情况。
是的,它会关闭。但这并不能保证未使用的套接字立即可供垃圾回收(在ThreadA中引用)。
套接字和线程,一些黄金法则...