OC中多线程的一些概念
1.进程
1.1>进程是指在系统中正在运行的一个应用程序(同时打开QQ和Xcode,系统会分别启动2个进程)
1.2>每个进程之间是独立的,每个进程均运行在其专用的且受保护的内存空间内
2.线程
1.1>一个进程想要执行任务,必须得有线程(每个进程至少要有一条线程,即主线程)
1.2>线程是进程的基本执行单元,进程的所有任务都在线程中执行
3.多线程
3.1>一个进程中可以开启多条线程,每条线程可以并行(同时)执行不同的任务
进程→车间, 线程→车间工人
3.2>多线程技术可以提高程序的效率
4.多线程的原理
4.1>同一时间,CPU只能处理一条线程,只有一条线程在工作(执行)
4.2>多线程并发(同时)执行,其实是CPU快速的在多条线程之间调度(切换)
4.3>如果CPU调度线程的时间足够快,就造成了多线程并发执行的假象
5.多线程的优缺点
5.1>多线程优点:
(1)能适当提高程序的执行效率
(2)能适当提高资源利用率(CPU,内存利用率)
5.2>多线程缺点:
(1)开启线程需哟啊占用一定的内存空间(默认情况下,主线程占用1M,子线程占用 512KB),如果开启大量的线程,会占用大量的内存空间,降低程序的性能
(2)线程越多,CPU在调度线程上的开销就越大
(3)程序设计更加复杂:比如线程之间的通信,多线程的数据共享
6.主线程
6.1>一个iOS程序运行后,默认会开启1条线程,称为”主线程”或”UI线程”
6.2>主线程的主要作用
(1)显示\刷新UI界面
(2)处理UI事件(比如点击事件,滚动事件,拖拽事件)
6.3>主线程使用注意
(1)别将比较好使的操作放到主线程中
(2)好使操作会卡主主线程,严重影响UI的流畅度,给用户一种”卡”的体验
7.多线程的实现方案
OC中多线程的一些概念的更多相关文章
- 网络与多线程---OC中多线程方法GCD(二)
小编在前一篇中介绍了多线程实现的五种常用方法.在接下来所介绍的这种方法是最具有魅力的,最具有诱惑的实现多线程的方案---GCD 一.什么是GCD GCD是Grand Central Dispatch的 ...
- 网络与多线程---OC中多线程使用方法(一)
小编在此之前,通过一个小例子,简单的形容了一下进程与线程之间的关系,现在网络编程中的多线程说一下!!! *进程的基本概念 每一个进程都是一个应用程序,都有自己独立的内存空间,一般来说一个应用程序存在一 ...
- 【Objective-C】OC中KVO的基本概念和使用方法
基本概念: 键值观察是一种使用获取其他对象的特定属性变化的通知机制. 控制器层的绑定技术就是严重依赖键值观察获得模型层和控制器层的变化通知的. 对于不依赖控制器层类的应用程序,键值观察提供了一种简化的 ...
- OC中对象拷贝概念
OC中的对象拷贝概念,这个对于面向对象语言中都会有这种的问题,只是不同的语言有不同的解决方式:C++中有拷贝构造函数,Java中需要实现Cloneable接口,在clone方法中进行操作.但是不过OC ...
- OC中最难的一部分内容:内存管理
OC中最难的一部分内容:内存管理为什么说他难呢?因为内存如果需要我们程序员去管理的话,那个难度肯定是很大的,如果是Java,垃圾回收器会把这份工作给做了,我们不需要关心,但是就是因为如此,Androi ...
- OC中协议的概念以及用法
OC中协议的概念以及用法,协议也是OC中的一个重点,Foundation框架以及我们后面在写代码都会用到. OC中的协议就是相当于Java中的接口(抽象类),只不过OC中的名字更形象点,因为我们在学习 ...
- java锁与监视器概念 为什么wait、notify、notifyAll定义在Object中 多线程中篇(九)
在Java中,与线程通信相关的几个方法,是定义在Object中的,大家都知道Object是Java中所有类的超类 在Java中,所有的类都是Object,借助于一个统一的形式Object,显然在有些处 ...
- 1218.1——OC中的常见关键字及一些基本方法
OC常见的关键字介绍: @ 看到这个关键字,我们就应该想到,这是Object-C对C语言的扩展,例如@interface XXX. @interface 声明类 @implementation 实现类 ...
- iOS开发中多线程基础
耗时操作演练 代码演练 编写耗时方法 - (void)longOperation { for (int i = 0; i < 10000; ++i) { NSLog(@"%@ %d&q ...
随机推荐
- CentOS 6.5系统安装配置图解教程(详细图文)
转载:http://www.jb51.net/os/128751.html
- AOI自动光学检测机技术在电路板检查中的应用
1.简述 AOI技术在许多不同的制造业领域使用,自从电子影像技术开始发展,就被各种人利用在不同的应用领域.大家最熟悉的数字相机.数字摄影机是大家生活中最常用到的器材之一,而工业产品的生产也大量使用这些 ...
- .vimrc快捷键设置
$ cat ~/.vimrc,centos7是在/etc/vimrc文件中配置. nmap <C-_>s :cs find s <C-R>=expand("<c ...
- cocos2d-x游戏开发系列教程-超级玛丽07-CMGameMap(三)-按键处理
在地图初始化好了之后,就开始移动马里奥吧,我在windows下,是使用键盘来移动马里奥的 w是跳,d是前进,a是后退,那么在程序里是怎么来获取这个按键的呢? 普通的windows程序,在按键之后,会有 ...
- Python3 官方文档翻译 - 5 数据结构
这章会更详细地描述了一些你已经学过的知识,同时添加一些新东西. 5.1 List进阶 下面是关于List的所有方法 list.append(x) 将元素添加至列表尾,相当于a[len(a):] = [ ...
- 一组开源 HTML5 Apps
一组用"画app吧"开发的 HTML5 Apps,默认使用FirefoxOS设备,其实它们都可以在像Android/IPhone/WindowsPhone8/BlackBerry/ ...
- C# 方法的调用
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- java多线程监听JMS、MQ队列
本作品采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可. 转载请注明出处和作者.http://blog.csdn.net/xtj332 背景:消息队列中有非常多的消息需要 ...
- AFNetWorking 提交 NSArray 类型参数 取不到值的解决办法
在使用AFNWorking 提交参数的时候, 其中包含NSArray类型的参数, 但是后台可以接收到普通int, string 类型的参数,就是接收不到array类型的, google后发现原来AFN ...
- java基础之注解
包含成员变量及方法的注解称之为元数据, 不包含任何成员的注解称之为标记. 用@interface定义注解, 使用类似于接口方法的方式来定义注解的属性,其中返回值成为属性的类型,方法名为属性的名称. p ...