热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【读书笔记】iOS-“一心多用”利用多线程提升性能

iPhone将具有支持不同类型多线程API的能力,这些API包括:POSIX线程,NSObject,NSThread和NSOperation.iPhone操作系统是一个真正的抢占式,多任务操

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

 

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

 

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

 

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

 

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

 

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

 

进程就是正在运行的应用

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

 

 

 

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

 

推荐阅读
  • 我的iOS开发入门自学路径
    我有一个清单,列着希望在大学里完成的事。比如,学一门乐器,和朋友去旅游,搭建自己的博客,去滑翔,看各主题的书籍。其中一项是,写自己的App并且上架。去年开始,我准备完成这一项,所以 ... [详细]
  • iOS Open Source : Popover API for iPhone
    iOS Open Source : Popover API for iPhone ... [详细]
  • 开发笔记:Xunit测试使用个人小结
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Xunit测试使用个人小结相关的知识,希望对你有一定的参考价值。因工作中用到xunit测试,故总结下用法,以供个人参考使 ... [详细]
  • 这篇文章主要讲解了“GradeBook类怎么定义”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Grad ... [详细]
  • nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • jsappsugar,基于,js,语法,定义 ... [详细]
  • 2015年iOS测试现状
    本文由伯乐在线-nathanw翻译,dopcn校稿。未经许可,禁止转载!英文出处:www.mokacoding.com。欢迎加入翻译小组。几周前,我决定将将我在mokacoding ... [详细]
  • 安卓编年史(1):Android
    让我们跟着安卓从0.5版本到7 的无尽迭代来看看它的发展历史。这些年来历代安卓的主屏幕[图片提供:RonAmadeo]安卓已经以各种形式陪伴了我们六年以上。在这段时间内,我们已经看 ... [详细]
  • Shiro 简单了解
    Shiro简单了解简单用过SpringSecurity安全框架后,再试试另一个安全框架——Shiro。1.Shiro简介ApacheShiro是一个强大且易用的Java安全框架:S ... [详细]
  • Unity3D平台宏定义之美
    Unity包含一个“平台相关的编译”功能。这包括一些预处理指令,让你分割你的脚本编译和专为支持的平台之一执行代码段。您可以Unity编辑器中运行代码,这 ... [详细]
  • 用户体验这点事儿
    2009-02-1518:03byMainz,3366visits,网摘,收藏,编辑用户体验设计最近比较热,从以前的轻视UI到现在不管是桌面软件还是网站都开始关注用户 ... [详细]
  • 1.切换Xcode版本假如本地有2个Xcode,切换命令如下sudoxcode-select--switchUsersyushu.lxysoftwareXcode.appConte ... [详细]
  • HTML 5定稿了?背后还是那场闹剧
    HTML5虽然只是一个技术标准,但是眼下更多承载着颠覆苹果与谷歌移动生态的理想。我并不想单纯从技术角度谈论HTML5的现实处境,因为技术从来不会成为发展的绝对瓶颈,尤其是HTML5 ... [详细]
  • 微信小程序发布引起轰动
    首页资讯人物态度新闻段子知识产品公司活动专题黑镜物是No!登录为什么微信深夜发布的“小程序”引动了开发者的大地震?盛威12小时前新闻传说中的微信“应用号”终于要来了& ... [详细]
  • 本文介绍了iOS开发中检测和解决内存泄漏的方法,包括静态分析、使用instruments检查内存泄漏以及代码测试等。同时还介绍了最能挣钱的行业,包括互联网行业、娱乐行业、教育行业、智能行业和老年服务行业,并提供了选行业的技巧。 ... [详细]
author-avatar
keleesen
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有