`
pcajax
  • 浏览: 2200920 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

移动开发在路上-- IOS移动开发系列 多线程一 [转]

 
阅读更多

 

类似于什么是进程什么是线程在这里我就不多浪费时间了(Google一下什么都有)!

废话不多说先上图,我相信大家都是喜欢看图的人,俗话说得好,求图求真相吗?虽然这里只有屌丝一个但是真相还是会有的。。。

码农的EQ有限,所以既没有太多煽情的部分了

 

在Obj-c中线程的创建与启动

首先说一下OC中有几种多线程的方式

    //创建多线程对象一

    NSThread *thread=[[NSThread alloc] initWithTarget:self selector:@selector(ChildThread:) object:@"子线程"];

    //开始运行多线程

    [thread start];

    //创建多线程对象二

    [NSThreaddetachNewThreadSelector:@selector(ChildThread:) toTarget:selfwithObject:@"子线程"];

    //创建多线程对象三

    [selfperformSelectorInBackground:@selector(ChildThread:) withObject:@"子线程"];

    //创建多线程对象四

    NSOperationQueue *threadQueue = [[NSOperationQueue alloc] init];

    [threadQueue addOperationWithBlock:^(void){

        NSThread *t = [NSThread currentThread];

        if (![t isMainThread]) {

            for (int i=0; i<100; i++) {

                NSLog(@"---子线程---%d",i);

            }

   

        }

    }];

    

    //创建多线程对象五

    //创建一个线程队列

    NSOperationQueue *operationQueue = [[NSOperationQueue alloc] init];

    //同时执行的并发数

    operationQueue.maxConcurrentOperationCount = 1;

    //创建一个线程对象

    NSInvocationOperation *operation1 = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(ChildThread:) object:@"子线程"];

    //创建一个线程对象

    NSInvocationOperation *operation2 = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(ChildThread2:) object:@"子线程2"];

    //设置优先级

    operation2.queuePriority = NSOperationQueuePriorityHigh;

    

    

    [operationQueue addOperation:operation1];

    [operationQueue addOperation:operation2];

    

    //创建多线程对象六

    dispatch_queue_t queueq=dispatch_queue_create("test", NULL);

    dispatch_async(queueq, ^{

        for (int i=0; i<100; i++) {

            NSLog(@"---子线程1---%d",i);

        }

        

        dispatch_sync(dispatch_get_main_queue(), ^{

            BOOL isMain = [NSThread isMainThread];

            if (isMain) {

                NSLog(@"主线程");

            }

        });

        

    });

 

 

先创建一个项目

我这里XCode版本是5.0.2

创建一个新项目

选择一个空的application    创建

 

下一步

点击 创建

到这里我们这个项目就算创建好了。

 

 

开始 coding 

选择这个.m文件

 

又补充了一下子

 

到这里先告一段落

 持续更新中...

 

那里有不对的请多提意见,互相学习!

感觉有帮助的话,请帮忙推荐一下,大家的肯定才是对我最大的支持!

分享到:
评论

相关推荐

    IOS-多线程多任务下载

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

    移动应用开发-iOS开发示例教程之多图片多线程下载.zip

    在iOS开发中,移动应用开发是一项关键技能,尤其在当今高度依赖智能手机的时代。本教程将聚焦于一个重要的实践环节——如何实现多图片的多线程下载。这一功能对于提升用户体验至关重要,因为它允许用户在后台加载...

    swift-这里详细介绍了iOS多线程NSThreadGCDNSOperation的使用

    在iOS开发中,多线程技术是至关重要的,它能够帮助我们提高应用程序的性能和用户体验。本教程将深入探讨Swift中的三种主要多线程技术:NSThread、GCD(Grand Central Dispatch)以及NSOperation。这三者都有其独特的...

    IOS多线程理解

    iOS多线程是移动应用开发中不可或缺的技术,它允许程序在后台执行耗时任务,同时保持主线程的流畅,从而提供良好的用户体验。本文将深入探讨iOS的三种主要多线程编程方式:NSThread、NSOperation和NSOperationQueue...

    IOS移动开发

    iOS移动开发是当今软件开发领域的一个热点,尤其是在企业级应用中,其需求日益增长。本专题将深入探讨如何使用Embarcadero DelphiXE4这一强大的集成开发环境(IDE)进行iOS应用程序的开发。 DelphiXE4是由...

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

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

    iOS移动开发从入门到精通.epub

    本书由资深iOS开发工程师精心编撰,系统地介绍了使用iOS 10+Swift 3+Xcode 8开发移动应用的关键技术。  本书共分三篇,*篇为基础篇,主要介绍了iOS开发基础知识,包括iOS系统的历史、Swift 3.0语言、UI界面构建技术...

    2013年百度校招移动开发工程师笔试题--深圳

    "2013年百度校招移动开发工程师笔试题--深圳" 这个标题揭示了这是百度公司在2013年度针对校园招聘进行的一场针对移动开发工程师岗位的笔试题目。这场考试可能包含了对于移动平台开发技术、编程语言、软件设计原则、...

    iOS开发教程大全列表80G

    - 多线程处理技巧 - 图片与动画处理技术 - **高级实战:** - 3D图形渲染 - 数据持久化策略 - 服务器交互技术 #### 三、知名iOS培训课程 - **教程名称:** JF23-知名iOS培训开发视频教程 - **容量大小:** ...

    IntelligentHome-qt开发支持android ios.zip

    开发者可能使用Qt Creator作为集成开发环境,使用QNetworkAccessManager处理网络通信,使用QThread管理多线程,确保UI的流畅性。同时,为了兼容Android和iOS,项目可能使用了Qt的平台适配器和特定平台的API。 总的...

    FFmpeg-X264-Encode-for-iOS, 利用FFmpeg x264将iOS摄像头实时视频流编码为h264文件.zip

    开发者需要关注CPU和GPU的使用情况,调整编码参数以适应不同设备的能力,并可能需要实施多线程处理,以提高编码效率。 7. **错误处理和调试**: 集成FFmpeg到iOS项目中可能会遇到各种问题,如内存管理、编译错误、...

    kmm-networking-and-data-storage-main_ios_kotlin_kmm_cross-platfo

    在跨平台移动应用开发中,Kotlin 多平台(KMM)允许开发者编写一次代码,然后在 iOS 和 Android 上共享。Kotlin 是一种静态类型的 JVM 和 JavaScript 编译器支持的语言,由 JetBrains 开发,因其简洁、安全和高性能...

    Xamarin iOS开发实战中册

    《Xamarin iOS开发实战中册》是一本专为开发者准备的深入学习Xamarin技术,特别是针对iOS平台的应用开发指南。这本书旨在帮助读者掌握使用Xamarin工具集构建原生iOS应用程序的技能,从而实现跨平台的高效开发。...

    GZ-2022039 移动应用开发赛项赛题.zip

    移动应用开发是现代信息技术领域中的一个重要分支,尤其在高职教育中占据着显著的地位。"GZ-2022039 移动应用开发赛项赛题" 提供了一个全面的学习和竞技平台,旨在提升学生的实践能力和创新能力,特别是在云计算环境...

    移动应用开发实验库-齐全资料+实验案例源码.zip

    实验案例往往涵盖了从基础到高级的各种技术点,例如在Android开发中可能包括UI布局、数据存储、网络通信、多线程处理、传感器应用、图形图像处理等内容。 实验库中的源码是学习移动应用开发的重要资源。通过阅读和...

    ios开发视频教程

    - **iOS系统简介**:iOS是由苹果公司开发的移动操作系统,主要用于iPhone、iPad等设备。它以直观的操作界面、优秀的用户体验著称。 - **Swift语言入门**:Swift是苹果推出的一种编程语言,用于iOS、iPadOS、macOS等...

    ios开发-json数据解析框架

    在iOS开发中,JSON(JavaScript Object Notation)数据解析是一个重要的环节,因为它是一种轻量级的数据交换格式,广泛用于Web服务和移动应用之间的数据传输。本文将深入探讨JSON在iOS开发中的作用,以及如何利用...

    北航iOS开发选修课pdf

    9. **多线程**:讨论GCD(Grand Central Dispatch)和Operation Queues,理解多线程在iOS开发中的应用。 10. **App Store发布**:介绍iOS应用的测试、签名、版本控制和App Store审核流程,以及App Store Connect的...

    swift-PandoraPlayer一个用于iOS的轻便音乐播放器

    【Swift开发-视频处理/播放器】:Swift是一种由Apple推出的高效、安全的编程语言,广泛应用于iOS、macOS、watchOS和tvOS等平台的软件开发。在本项目"swift-PandoraPlayer"中,它被用来创建一个轻量级的音乐播放器...

    swift-用于并行处理的iOSSwift框架

    GCD 是苹果提供的一种多线程解决方案,它允许开发者无需直接管理线程,而是通过提交任务到队列来实现异步执行。有两大类型的任务队列:串行队列和并行队列。串行队列确保同一时间只有一个任务在执行,而并行队列则...

Global site tag (gtag.js) - Google Analytics