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

发布于 2022-08-29 17:14:37 字数 180 浏览 17 评论 0

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

CocoaAsyncSocket不是号称基于NSRunLoop的吗?

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

じее 2022-09-05 17:14:37

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文