佚名通过本文主要向大家介绍了CocoaAsyncSocket不是基于线程的吧?为什么我alloc了很多socket就出现了很多的新线程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: CocoaAsyncSocket不是基于线程的吧?为什么我alloc了很多socket就出现了很多的新线程
描述:
解决方案1:
描述:
我要做的是扫描局域网内的每一个ip XX端口是否开放
一开始尝试过开200多个socket
分别connectto host
结果调试的时候发现有200多个线程在运行
CocoaAsyncSocket不是号称基于NSRunLoop的吗?
求指教,这种扫端口的形式怎么样能最快最可靠的完成
解决方案1:
基于 NSRunLoop
是指在回调的时候会通过这个机制让回调函数运行在主线程上面,保证不会出现任何跨线程调用的问题。但是它的底层还是用线程来实现的,所以会创建很多线程。
如果是扫端口,并且开那么多线程并不会造成系统卡死什么的,就这么用就好了,大概没什么特别值得做的优化。