`

iOS 创建多线程的三种方法

 
阅读更多
(1)//通过NSObject的方法创建线程
    //(这个方法会自动开辟一个后台线程,参数1:在这个后台线程中执行的方法,参数2:用于传递参数)
    [self performSelectorInBackground:@selector(banZhuanPlus) withObject:nil];


(2)//通过NSThread创建线程(参数1:方法的执行者;参数2:在线程中执行的方法;参数3:用于传递参数)
//第一步:创建线程
NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(banZhuanPlus) object:nil];
//第二步:执行
[thread start];

[thread release];

 

(3)//NSOperation就是一个操作单元,用来执行方法,是一个抽象类,必须子类化或者使用系统创建好的子类(NSInvocationOperation or NSBlockOperation)
// //NSOperation是最小的操作单元;只能够执行一次;

// //NSInvocationOperation第一步:创建
NSInvocationOperation *invocation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(banZhuanPlus) object:nil];
// //第二步:(不设置的话不添加到队列)在主线程中执行
// [invocation start];

//NSBlockOperation第一步:创建
NSBlockOperation *block = [NSBlockOperation blockOperationWithBlock:^{
[self banZhuanPlus];
}];
// //第二步:执行(在主线程中执行)
// [block start];//如果添加到队列就不要start了

// 这个队列会自动帮咱们创建一个辅助的线程
//这个队列里面只能够添加NSOperation以及子类的对象;
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[queue setMaxConcurrentOperationCount:2];//设置最大并行数;
[queue addOperation:block];//只要把操作队列添加到队列中就会执行;
[queue addOperation:invocation];

//队列: 先进先出
//栈: 先进后出

//队列中涉及到串行和并行
//串行: 一次只能执行一个任务
//并行: 一次可以执行多个任务
(整片复制的时候,注意没有注释的属于一体) 

分享到:
评论

相关推荐

    ios多线程开发的常用四种方式和基本使用

    本文将深入探讨四种常用的iOS多线程开发方式:pthread、NSThread、NSOperation及NSOperationQueue,以及Grand Central Dispatch(GCD)。 首先,让我们了解下pthread。pthread是POSIX线程库,它在iOS中被用于跨平台...

    IOS-多线程多任务下载

    在iOS开发中,多线程多任务下载是提高应用程序性能和用户体验的重要技术。尤其是在处理大文件下载时,传统的单线程下载方式可能会导致用户界面阻塞,无法进行其他操作,而多线程多任务下载则可以很好地解决这个问题...

    ios 开发多线程

    本文将深入探讨iOS中的多线程技术,包括NSOperation和GCD(Grand Central Dispatch)两种主要的实现方式,以及如何在多线程环境中进行网络图片的下载。 一、NSOperation和NSOperationQueue NSOperation是苹果提供...

    iOS多线程Demo

    iOS平台主要提供了三种多线程技术:NSOperationQueue、GCD(Grand Central Dispatch)和NSThread。 1. NSOperationQueue:它是基于gcd之上的高级抽象,提供了更多的操作控制,如依赖关系、最大并发数量等。在“iOS...

    iOS 多线程编程指南 pdf

    iOS多线程编程指南是一份深入介绍iOS平台下多线程编程技术的文档。文档主要涵盖的技术点包括NSThread、NSOperation以及Grand Central Dispatch(GCD),这些技术是iOS开发者在开发应用程序时常用的技术。 首先,...

    ios多线程编程

    iOS多线程编程是iOS开发中的一个重要技能,对于提升应用程序的性能和用户体验至关重要。在iOS平台上,多线程编程可以通过多种技术实现,包括NSThread、Grand Central Dispatch(GCD)、Operation Objects等。本文档...

    ios 多线程编程指南

    在iOS中创建线程有多种方法,例如NSThread的简单直接方式、POSIX标准的多线程编程接口,以及通过NSObject类方法等。其中,NSThread提供了面向对象的方式来处理线程,而POSIX多线程则提供了更底层的控制。 #### 2.3 ...

    哈哈iOS多线程面试题

    在探讨iOS多线程的面试题目时,我们首先要明确进程和线程的定义及其关系。进程可以被理解为计算机上一次执行活动的程序,它是操作系统分配资源的基本单元,拥有独立的内存空间和运行所需的全部资源。当我们提到一个...

    iOS多线程 (pthread,NSThread)简单Demo

    在iOS开发中,多线程技术是不可或缺的一部分,它能够帮助我们提高应用程序的响应速度和用户体验。本示例将深入探讨两种最基础的多线程实现方式:pthread和NSThread。 首先,我们来理解一下多线程的概念。多线程是指...

    IOS多线程理解

    本文将深入探讨iOS的三种主要多线程编程方式:NSThread、NSOperation和NSOperationQueue,以及Grand Central Dispatch (GCD)。 首先,NSThread是iOS中的一种基本线程实现。通过创建NSThread对象,我们可以简单地...

    理解iOS多线程应用的开发以及线程的创建方法

    本文将深入探讨iOS多线程的应用及线程创建方法,主要基于传统的Objective-C编程语言。 首先,我们要了解进程与线程的概念。进程是操作系统中运行应用程序的基本单位,每个进程都有独立的内存空间,例如在Mac系统中...

    iOS控制多线程任务数量

    总结,iOS中的GCD提供了一种优雅的方式来管理和控制多线程任务。通过设置自定义队列的最大并发数,我们可以限制同时运行的任务数量,优化性能并防止系统资源过度消耗。`ZKRGlobalQueue^()`以及对应的`ZKRQueueAsync`...

    ios多线程资料01

    iOS系统提供了多种实现多线程的方法: 1. **NSOperationQueue**:基于GCD(Grand Central Dispatch)的高级接口,提供了一种更面向对象的方式来管理并发任务。我们可以创建NSOperation对象,定义任务,并将它们加入...

    IOS两个精典的关于多线程的例子代码

    `NSThread`是iOS中处理多线程的一种基本方式,它的主要方法包括: 1. **+ (void)detachNewThreadSelector:(SEL)aSelector toTarget:(id)aTarget withObject:(id)anArgument;** 这个类方法用于创建并启动一个新线程...

    iOS中多线程原理与runloop介绍

    在iOS中创建线程通常有三种方式:使用`NSThread`、使用`NSObject`类提供的方法以及使用POSIX线程。 1. **使用`NSThread`** - **创建`NSThread`对象并启动**:可以通过创建`NSThread`实例,并调用`start`方法来...

    iOS 多线程运用

    1. GCD (Grand Central Dispatch):苹果提供的一种高效、灵活的多线程解决方案,支持并发和串行队列,可以自动管理线程生命周期。 2. NSThread:轻量级线程类,允许开发者手动创建和管理线程,但使用相对复杂。 3. ...

    iOS多线程网络请求,多线程下载图片

    在iOS应用开发中,多线程技术是必不可少的,尤其在网络请求和图片下载场景中,它能提升用户体验,避免UI阻塞。本文将深入探讨如何在iPhone开发中利用多线程进行网络请求和图片下载。 首先,我们来看一下标题中的...

    iOS开发多线程编程指南

    iOS开发多线程编程指南是Apple官方提供的一个多线程编程的详细教程,涵盖了在iOS平台上进行多线程编程的基本概念、设计技巧、线程管理和同步工具等方面的全面知识。对于希望在iOS平台上开发高性能应用的开发者来说,...

    IOS 网络多线程详解

    #### 三、多线程的常用方法 - `NSThread`类提供了多种用于管理和操作线程的方法: - `+ (BOOL)isMultiThreaded;`:判断当前线程是否是多线程环境。 - `+ (NSThread *)currentThread;`:获取当前正在执行的线程...

Global site tag (gtag.js) - Google Analytics