iPhone将具有支持不同类型多线程API的能力,这些API包括:POSIX线程,NSObject,NSThread和NSOperation.

iPhone操作系统是一个真正的抢占式,多任务操作系统,允许开发人员创建多线程应用。

拿着一个iPhone时,我手中实际是 一个配备Unix操作系统的抢占式,多任务计算机,它有一个图形界面,并提供GPS功以,Wi-Fi以及大量内置的函数库,另外这也是一个手机 ,这实在令人惊叹,真是了不起!

线程或执行线程是计算机程序中一个分支,会引发两个或多个并发运行的任务。线程包含在计算机程序中

基本来说,如果应用在完成一个或多个任务的同时还需要保证对用户的响应性,就应当对应用使用多线程。

多线程是指,操作系统控制多个进程共享CPU时间并等待它们的时间片到来,以达成多个任务同时运行的效果。操作系统会让CPU为一个进程服务几毫秒,然后要求这个进程进入休眠状态,而让CPU为其他进程提供服务。

进程就是正在运行的应用

如果多个线程试图访问资源并同时完成读和写操作,资源的值可能不正确,而且很可能被破坏。例如,假设两个线程分别表示一个游戏应用中的两个角色,且这两个线程同时运行。同步是指保持数据一致或者维护线程之间数据的完整性。如果一个线程试图读取gameScroe变量,而另一个线程试图更新gameScore变量,gameScore变量就可能不正确。

临界区是一段代码,可以保护共享资源,防止多个线程同时访问这段代码而破坏共享资源。

存在某些条件时,线程访问资源的时间顺序可能导致出乎意料的结果。这种情况通常称为一种竞态条件。

在多线程中互斥锁用来避免同时使用一个公共资源。很多著名的竞态条件例子就曾导致灾难性的后果。

两个或多个线程永远阻塞,互相等待对方释放各自独特持有的资源时,则会出现线程应用中另一个常见的陷阱。这称为一个死锁条件。

启动一个线程时,实际上会脱离Cocoa框架。此时,要由我们来负责清理内存池。如果没有这样做,就会出现内存泄漏。

运行循环,会处理你用来调度工作的事件差协调到来事件的接收,其作用是在有工作时保持线程的繁忙状态,而在没有任何工作时置线程为休眠模式。要了解有关运行循环的更多信息。

参考资料:《精彩iPhone炫酷开发-七位一线高手的编程和设计范例》

 

最新文章

  1. java ide 导出可运行jar包
  2. Spring 文件上传功能
  3. java length属性 length()方法 size()方法
  4. javascript,HTML,PHP,ASP做301跳转代码 SEO优化设置
  5. Visual Studio 2012 RC 中RC表示什么意思
  6. 【C#】使用C#将类序列化为XML
  7. CSS 加载新方式
  8. 测试通过Word直接发布博文
  9. Python中的map()函数和reduce()函数的用法
  10. Hadoop 安装大纲
  11. openstack私有云布署实践【17 配置文件部份说明】
  12. MODBUS协议详解
  13. easyui datagrid的json格式
  14. lesson - 11 课程笔记
  15. (6综合实验)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  16. Hive&SqlServerql:inner join on条件中如果两边都是空值的情况下,关联结果中会把数据给过滤掉。
  17. 前端零基础 --css转换--skew斜切变形 transfor 3d
  18. 参考RPC
  19. cf983E NN Country (倍增+dfs序+树状数组)
  20. linux 监控脚本运行时间

热门文章

  1. Zhu-Takaoka Two-dimensional Pattern Matching
  2. 安装过redis集群,重新做集群办法:
  3. React中的“双向绑定”
  4. DevOps - CI - 持续集成(Continuous Integration)
  5. Docker 部署Django项目
  6. 线程误区-join,wait(里边还是调用的wait)
  7. [视频]K8飞刀 Discuz csrf Exp教程
  8. 【转】ASP.NET Core MVC 配置全局路由前缀
  9. LeetCode刷题指南(字符串)
  10. C#效率优化(2)-- 方法内联