CocoaAsyncSocket不是基于线程的吧?为什么我alloc了很多socket就出现了很多的新线程


我要做的是扫描局域网内的每一个ip XX端口是否开放
一开始尝试过开200多个socket
分别connectto host
结果调试的时候发现有200多个线程在运行

CocoaAsyncSocket不是号称基于NSRunLoop的吗?

求指教,这种扫端口的形式怎么样能最快最可靠的完成

cocoaasyncsocket ios socket

yugilin 10 years, 10 months ago

基于 NSRunLoop 是指在回调的时候会通过这个机制让回调函数运行在主线程上面,保证不会出现任何跨线程调用的问题。但是它的底层还是用线程来实现的,所以会创建很多线程。

如果是扫端口,并且开那么多线程并不会造成系统卡死什么的,就这么用就好了,大概没什么特别值得做的优化。

_楼下D小黑_ answered 10 years, 10 months ago

Your Answer