CocoaAsyncSocket不是基于线程的吧?为什么我alloc了很多socket就出现了很多的新线程
我要做的是扫描局域网内的每一个ip XX端口是否开放
一开始尝试过开200多个socket
分别connectto host
结果调试的时候发现有200多个线程在运行
CocoaAsyncSocket不是号称基于NSRunLoop的吗?
求指教,这种扫端口的形式怎么样能最快最可靠的完成
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
基于
NSRunLoop
是指在回调的时候会通过这个机制让回调函数运行在主线程上面,保证不会出现任何跨线程调用的问题。但是它的底层还是用线程来实现的,所以会创建很多线程。如果是扫端口,并且开那么多线程并不会造成系统卡死什么的,就这么用就好了,大概没什么特别值得做的优化。