码迷,mamicode.com
首页 > 编程语言 > 详细

多线程(1)

时间:2015-08-27 15:07:48      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:

当不希望 操作被中断的时候 就会用到 多线程

 

当用户在下载资源,进行图像处理,耗时数据处理等任务时,往往希望

操作这个任务的时候 其他操作不会被中断, 这时候就会用到多线程

在单线程中一个线程只能执行一个任务,一个任务处理不完另一个任务就不能开始,这样会影响用户体验

多线程 :每个应用程序的内部,都会存在一个或多个执行的线程。它同时或者一个几乎同时执行不同的操作

每个系统运行的应用程序都是一个进程 每个进程里面都包含一个或多个线程。

线程是一组指令的集合,程序中一个单一的顺序控制流程,是一个程序中独立运行的片段

程序运行后,系统会创建一个叫做主线程的线程,所有的UI控件都必须运行在主线程中,所以也有人叫它UI线程

 

如果把所有的任务都放在主线程中,容易造成UI阻塞

多线程:在同一个应用程序中,同时运行多个线程,完成不同的工作,叫做多线程

 

ios中有几种多线程方式:

iOS中有3种多线程策略供开发者使用:NSThread,NSOperation(基类,不可以直接使用, 只能使用它的子类),GCD

GCD 苹果推荐的一种实现多线程的方式

轻量级 :对系统框架的依赖性的程度

NSThread:是这三种策略里面相对轻量级的,需要自己去管理他的生命周期,以及线程之间的同步,线程共享同一应用程序的部分内存空间,他们拥有对数据相同的访问权限,所以得协调多个线程对同一数据访问,常用的做法是在访问之前加锁,这回导致一定的性能开销

 

多线程(1)

标签:

原文地址:http://www.cnblogs.com/popper123/p/4763214.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!