我有一个项目,其中线程A在某个套接字上调用Accept(...),然后它将它传递给另一个线程,该线程在套接字上接收然后关闭套接字。
调用accept的对象永远不会在线程A中关闭。这样安全吗?
线程A中该对象会发生什么?
答案 0 :(得分:4)
套接字不是对象 - 它只是一个数字(或者可以想象一个指针)。如果将一个整数从一个线程传递给另一个线程,则没有问题 - 与套接字相同。这假设您询问操作系统级别套接字,而不是您或您正在使用的框架已实现的某些套接字类,并且您只能从其中一个线程访问套接字,这似乎就是这种情况。
答案 1 :(得分:0)
是的,它会关闭。但这不能保证未使用的套接字可立即用于垃圾收集(在ThreadA中引用)
套接字&线程,一些黄金法则......