NSThread NSRunloop

来源:互联网 发布:宁夏干部网络培训学员 编辑:程序博客网 时间:2024/06/04 19:14

首先需要搞清楚两个概念

线程:处理器分配的最小单位;一个计算机同时运行着多个进程,一个进程同时又包含多个线程。线程的好处是,可以并发执行多个任务(由处理器时间片功能支持)。

举例;当我们修水管,有两种方案:

1、自己出去材料,回来自己修,这个时候你只能干一件事情

2、打电话出去求助,同时你自己可以干自己的事情,等到维修人员来装。(另一种情况,维系人员把材料带来你自己装)

第一种方式很容易理解,现在讨论第二种方式。


当送餐到了你必须停下自己手中的事情,在计算机中是如何实现这个过程的。

1、维修人员自己装,这个时候要考虑的问题是,如果他来的时候,你刚好正在自己修,这个时候他只能等你停下来,他才能操作,也就是我么所说的临界资源的访问。(这种情况回调是在另外一个线程,也就是维修人员那个线程)


2、维系人员送来了,你自己装。这个时候要考虑的是维修人员与你交互材料的过程,也就是我们所说的线程间通信的过程。(这个时候维修的操作还是在你自己的线程中)



现在讨论 NSThread NSRunloop:

每个线程如果需要监听外部消息就需要有一个nsrunloop,注册了你感兴趣的事件,否则即使别人发消息给你你也不理解要是干什么。


参考地址:http://www.cnblogs.com/jy578154186/archive/2013/02/26/2933974.html

关于Dispatch Source

http://www.cnblogs.com/zhw511006/archive/2012/04/06/2434714.html


有助于理解(应用框架)消息队列的工作方式:从消息队列中用同步的方式读取消息,如果有消息(事件)则进入消息处理函数,没有则阻塞
地址:http://hi.baidu.com/qinfengxiaoyue/item/7074d35e40312b1caaf6d7c3

原创粉丝点击