Quantcast
Channel: CSDN博客移动开发推荐文章
Viewing all articles
Browse latest Browse all 5930

21day 线程

$
0
0

概述

重点:
NSThread

多线程基础、pthread、开启线程的3种方式
线程的状态、线程安全问题、线程间的通信

GCD

同步方法和异步方法、队列的使用、线程间的通信
延迟执行、一次性代码、队列组、单例模式-ARC、单例模式-MRC、用宏抽取单例模式

NSOperation

NSOperation和NSOperationQueue的概念理解、NSInvocationOperation、NSBlockOperation
NSOperationQueue的常见方法、最大并发数、操作依赖、队列的取消\暂\恢

一、概念

1、进程:系统中正在运行的一个应用程序
2、线程:1个进程想要执行任务,必须得有线程。即线程是进程的基本执行单元

1)线程的串行:一个线程中任务的执行是串行的
2)多线程的原理:同一时间,CPU只能处理一条线程。多线程并发执行,其实就是CPU快速地在多条线程之间调度(如果CPU调度的时间足够快,就造成了多线程并发执行的假象)

二、多线程在iOS开发中的应用

1、什么是主线程:一个iOS程序运行之后,默认会开启一条线程,称为“主线程”,或者“UI线程”
2、主线程的主要作用:
显示、刷新UI界面
处理UI事件(点击、滚动、拖拽)

p s:主线程的使用注意事项:别将比较耗时的操作放到主线程中
一般的解决方案就是将那些耗时的操作放到另外一个线程中去执行,多线程编程是防止主线程堵塞,增加运行效率的最佳方法。

3、iOS中多线程的实现方案

这里写图片描述

iOS支持多个层次的多线程编程,层次越高的抽象程度越高,使用也越方便,也是苹果最推荐使用的方法。下面根据抽象层次从低到高依次列出iOS所支持的多线程编程方法:

1).Thread :是三种方法里面相对轻量级的,但需要管理线程的生命周期、同步、加锁问题,这会导致一定的性能开销
2.)Cocoa Operations:是基于OC实现的,NSOperation以面向对象的方式封装了需要执行的操作,不必关心线程管理、同步等问题。NSOperation是一个抽象基类,iOS提供了两种默认实现:NSInvocationOperation和NSBlockOperation,当然也可以自定义NSOperation
3).Grand Central Dispatch(简称GCD,iOS4才开始支持):提供了一些新特性、运行库来支持多核并行编程,它的关注点更高:如何在多个cpu上提升效率

4、线程状态

这里写图片描述

作者:u011018979 发表于2017/7/4 9:44:11 原文链接
阅读:14 评论:0 查看评论

Viewing all articles
Browse latest Browse all 5930

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>