http://www.10bay.com/?p=149

[[session inputStream] scheduleInRunLoop:[NSRunLoop currentRunLoop]      forMode:NSDefaultRunLoopMode];

因主线程有事务要处理,会阻塞主线程外设事件的触发;

解决:

“将socket的runloopsource添加到新开的线程的runloop中,并在新线程中显示启动runloop就可以了”

创建一个线程,取得它的runloop,然后用类似上面的代码将其加入,这样就不会阻塞接收数据事件的回调了。

[NSThread detachNewThreadSelector: @select(act:) toTarget: self withObject:nil];

[[session inputStream] scheduleInRunLoop:threadRunLoop    forMode:NSDefaultRunLoopMode];
-(void)act:(id){    threadRunLoop = [NSRunloop currentRunloop];

if (!threadShouldExit)    {

[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:limitDate];

}

}
然后将stream加入到子线程的runloop中即可。

– 这个方法理论上是可行的,不过对其必要性还是存疑。

转载于:https://www.cnblogs.com/pengyingh/articles/2502083.html

NSStream线程阻塞处理相关推荐

  1. weblogic线程阻塞性能调优(图解)

    转自:http://blog.csdn.net/z69183787/article/details/12647539 声明:出现这个问题有程序方面.网络方面.weblogic设置方面等等原因,此文章主 ...

  2. 如何查找历史线程阻塞原因_java并发编程-线程状态,线程阻塞方式,阻塞中的线程如何终止?...

    前面的例子通过volatile boolean来让任务终止,那么如果任务阻塞了? 如何终止它?本文来看下,参考think in java . 线程的状态 1.new:线程创建后的短暂状态,其分配系统资 ...

  3. JAVE SE 学习day_09:sleep线程阻塞方法、守护线程、join协调线程同步方法、synchronized关键字解决多线程并发安全问题

    一.sleep线程阻塞方法 static void sleep(long ms) Thread提供的静态方法sleep可以让运行该方法的线程阻塞指定毫秒,超时后线程会自动回到RUNNABLE状态,等待 ...

  4. 守护线程与线程阻塞的四种情况

    守护线程  Java中有两类线程:User Thread(用户线程).Daemon Thread(守护线程) 用户线程即运行在前台的线程,而守护线程是运行在后台的线程. 守护线程作用是为其他前台线程的 ...

  5. 【Netty】Netty 简介 ( 原生 NIO 弊端 | Netty 框架 | Netty 版本 | 线程模型 | 线程 阻塞 IO 模型 | Reactor 模式引入 )

    文章目录 一. NIO 原生 API 弊端 二. Netty 简介 三. Netty 架构 四. Netty 版本 五. Netty 线程模型 六. 阻塞 IO 线程模型 七. 反应器 ( React ...

  6. Java并发编程(4):守护线程与线程阻塞的四种情况

    守护线程 Java中有两类线程:User Thread(用户线程).Daemon Thread(守护线程) 用户线程即运行在前台的线程,而守护线程是运行在后台的线程. 守护线程作用是为其他前台线程的运 ...

  7. Silverlight+WCF 实战-网络象棋最终篇之非线程阻塞倒计时窗口(四)

    前言: 在前面的系列中,我们虽然完成了其大部分功能,但是,离正真运行,还是有一大段距离 当你F5运行时,在弹出对话框之后,如果你不即时点确定,或者上个WC回来之后,你会发现已经提示出错了 这节开始,我 ...

  8. 线程阻塞的概念 (Java 中的睡眠状态sleep 等待状态wait 礼让状态yield 自闭状态join suspend() 和 resume() )

    线程阻塞的概念: 线程阻塞通常是指一个线程在执行过程中暂停,以等待某个条件的触发. 参考文章1:什么是线程阻塞?为什么会出现线程阻塞? 参考文章2:线程阻塞

  9. 深入理解 Java 锁与线程阻塞

    相信大家对线程锁和线程阻塞都很了解,无非就是 synchronized, wait/notify 等, 但是你有仔细想过 Java 虚拟机是如何实现锁和阻塞的呢?它们之间又有哪些联系呢?如果感兴趣的话 ...

最新文章

  1. python使用openweathermap API获取全世界主要城市天气信息
  2. 不到两个月后,有关比特币现金升级的讨论升温
  3. rmi远程代码执行漏洞_【漏洞通告】Apache Solr远程代码执行漏洞
  4. 1.12 接口(Interface)的定义和实现
  5. 通用的启动参数获取getopt
  6. new arraylist内存_Java内存泄漏分析工具Memory Analyzer Tool
  7. 推荐一款功能强大的Tomcat 管理监控工具,可替代Tomcat Manager
  8. C++ 字符串编程训练2
  9. 聊聊身边的嵌入式,英语学习利器点读笔
  10. javascript指南_JavaScript指南
  11. 12.用户和组账户管理
  12. Linux上PyCharm报错及解决:ImportError: No module named 'sklearn'
  13. js文件里获取路由 vue_纯js文件中,怎么使用vue的路由
  14. 华为云计算ie学习一IA部分(1)
  15. 罗马音平假字复制_急求Bigbang的日文版bangbangbang的罗马音啊!有日文平假歌词我现在复制下...
  16. 二维码的制作之根据Excel数据批量制作二维码
  17. proteus编程、仿真AVR单片机
  18. 网络爬虫:Beautiful Soup库信息组织与提取
  19. 六大维度全景呈现:《数据安全法》实施一周年行业洞察
  20. 1.30.Flink SQL案例将Kafka数据写入hive

热门文章

  1. 在 C# 中通过 P/Invoke 调用Win32 DLL
  2. OpenCV中Mat数据结构使用举例
  3. android怎么监听多点触摸_什么是多点触控技术,有哪些用途
  4. linux进程状态d状态,Linux下进程的状态
  5. mysql binlog恢复错误_mysql通过binlog日志来恢复数据
  6. java 读取数据库结构_JAVA从SQLITE数据库中读取省份地市构造一棵树
  7. php 回调递归,PHP数组函数 array_walk_recursive (使用回调函数递归遍历数组元素)
  8. java抛出自定义异常_10 个深恶痛绝的 Java 异常。。
  9. JQ 全选后获取选中的值_为什么在PBI中还需要切片器之三:Excel切片器之度量值切换...
  10. Java学习总结:31(StringBuffer类)