iOS 中实现多线程的方法 NSThread

使用多线程的好处:

1.   使用多线程可以把程序中占据时间长的任务放到后台去处理,如图片、视频的下载

2.   发挥多核处理器的优势,并发执行让系统运行的更快、更流程、用户体验更好

使用多线程的缺点:

1.   大量的线程降低代码的可读性

2.   更多的线程需要更多的内存空间

3.   当多个线程对一个资源出现争夺的时候要注意线程安全的问题

NSThread(两种创建方式)

优点:NSThread比其它两个轻量级

缺点:需要自己管理线程的生命周期,线程同步,线程同步时对数据的加锁会有一定的系统开销

实例方法   -(id)initWithTarget:(id)target  selector:(SEL)  object:(id)argument;

使用:

参数解析:

selector:  线程执行的方法,这个selector最多只能接收一个参数

target:  selector消息发送的对象

argument:  传给selector的唯一参数,也可以是nil

类方法   +(void)detachNewThreadSelector:(SEL)aselector toTarget:(id)target  withObject:(id)argument;

使用:

参数解析:同上

时间: 2025-01-31 06:41:01

iOS 中实现多线程的方法 NSThread的相关文章

IOS中的多线程实现:NSThread、GCD和NSOperation

1.NSThread 先创建,后启动 NSThread *thread = [NSThread allc] initWithTarget:self selector:@selector(run) object:nil]; [thread start]; 直接启动 2.GCD 3.NSOperation

OS X 和iOS 中的多线程技术(上)

OS X 和iOS 中的多线程技术(上) 本文梳理了OS X 和iOS 系统中提供的多线程技术.并且对这些技术的使用给出了一些实用的建议. 多线程的目的:通过并发执行提高 CPU 的使用效率,进而提供程序运行效率. 1.线程和进程 进程 什么是进程 进程是指在计算机系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行中其专用且受保护的内存空间内 比如同时打开 Xcode .Safari ,系统就会分别启动两个进程 通过活动监视器可以查看Mac系统中所开启的进程 线程 什么是线程 一

iOS开发笔记--iOS中的多线程

摘要 本文主要介绍iOS开发中的三种多线程技术:NSThread, NSOperation/NSOperationQueue, GCD.以及在多线程编程中的注意点和小技巧. 多线程 NSThread NSOperation/NSOperationQueue GCD 目录[-] iOS中的多线程 iOS的三种多线程技术特点: GCD基本思想 队列: 操作: 不同队列中嵌套同步操作dispatch_sync的结果: 同步操作dispatch_sync的应用场景: GCD优点: GCD队列: NSOp

iOS开发之多线程技术(NSThread、OperationQueue、GCD)

在前面的博客中如果用到了异步请求的话,也是用到的第三方的东西,没有正儿八经的用过iOS中多线程的东西.其实多线程的东西还是蛮重要的,如果对于之前学过操作系统的小伙伴来说,理解多线程的东西还是比较容易的,今天就做一个小的demo来详细的了解一下iOS中的多线程的东西.可能下面的东西会比较枯燥,但还是比较实用的. 多线程用的还是比较多的,废话少说了,下面的两张截图是今天我们实验的最终结果,应该是比较全的,小伙伴们由图来分析具体的功能吧: 功能说明: 1.点击同步请求图片,观察整个UI界面的变化,并点

iOS中的多线程及GCD

多线程中的一些概念 //任务:代码段  方法  线程就是执行这些任务 //NSThread类 创建线程 执行线程 [NSThread isMainThread]//判断是否是主线程 #import "AppDelegate.h" @implementation AppDelegate -(void)dealloc { [_window release]; [super dealloc]; } - (BOOL)application:(UIApplication *)applicatio

OS X 和iOS 中的多线程技术(下)

OS X 和iOS 中的多线程技术(下) 上篇文章中介绍了 pthread 和 NSThread 两种多线程的方式,本文将继续介绍 GCD 和 NSOperation 这两种方式.. 1.GCD 1.1 什么是GCD GCD 全称 Grand Central Dispatch,可译为"牛逼的中枢调度器" GCD 基于纯 C 语言,内部封装了强大的函数库 1.2 使用 GCD 有什么优势 GCD 是苹果公司为多核的并行运算提出的解决方案 GCD 会自动利用更多的CPU内核 (如 二核 ,

ios中的多线程的用法总结

ios中的多线程的用法总结 1.进程的基本概念 (1)每一个进程都是一个应用程序,都有独立的内存空间,一般来说一个应用程序存在一个进程,但也有多个进程的情况 (2)同一个进程的线程共享内存中的内存和资源 2.多线程的基本概念 (1)每一个程序都有一个主线程,程序启动时创建(调用main来启动). (2)多线程技术表示,一个应用程序有多个线程,使用多线程能提供CPU的利用率,防止主线程被堵塞. (3)任何有可能堵塞主线程的任务不要在主线程执行(如:访问网络). (4)主线程的生命周期和应用程序绑定

iOS中的多线程

iOS中的多线程 首先来了解什么是多线程,进程和线程的区别. 进程: 正在进行中的程序被称为进程,负责程序运行的内存分配; 每一个进程都有自己独立的虚拟内存空间. 线程:(主线程最大占1M的栈区空间,每条子线程最大占512K的栈区空间) 线程是进程中一个独立的执行路径(控制单元); 一个进程中至少包含一条线程,即主线程; 可以将耗时的执行路径(如网络请求)放在其他线程中执行; 线程不能被杀掉,但是可以暂停/休眠一条线程. 创建线程的目的: 开启一条新的执行路径,运行指定的代码,与主线程中的代码实

IOS中的多线程【二】— NSOperation和NSOperationQueue

NSOperationQueue是一套基于Objective-c语言的API. GCD与NSOperationQueue的优缺点: NSOperationQueue:比较安全 GCD:没有NSOperationQueue安全,但使用起来简单,快速,还提供了一些操控底层的方法.实际开发中还是以GCD为主. NSOperationQueue实现多线程流程 1.定义一个任务队列. 2.定义一个任务. 3.把任务添加到队列中.一旦任务被添加到队列中,任务会马上被调度执行. 任务队列(NSOperatio