`
pcajax
  • 浏览: 2103452 次
  • 性别: 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开发示例教程之多图片多线程下载.zip

    移动应用开发_iOS开发示例教程之多图片多线程下载

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

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

    学习iOS锁、GCD多线程的一个售票系统.zip

    操作系统:LInux、IOS、树莓派、安卓开发、微机操作系统、网络操作系统、分布式操作系统等。此外,还有嵌入式操作系统、智能操作系统等。 网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络...

    Delphi 高级编程资料40本:串口语音通信编程移动开发数据通信与网络教程(四)

    Delphi 编写多线程.pdf Delphi 网络高级编程.pdf Delphi[1].下深入Windows核心编程.pdf Delphi_10.1_Berlin_手册_简体中文版.pdf Delphi下深入Windows核心编程.pdf Delphi下用Intraweb开发WEB程序应用实战_Password_...

    iOS高级程序员进阶——多线程编程核心技术模式篇

    在iOS开发中,实现多线程的的方式有很多种,常用的有pthread、NSThread、GCD与NSOperation。在实际应用中,多线程技术也有着非常多的使用场景,比如异步的网络请求、异步的图片加载、后台执行复杂任务等等。 在iOS...

    AES-Java-iOS-Android.zip

    兼容Java,iOS,Android三端的AES-128-ECB加密算法,附...综上所述,Java凭借其强大的特性和广泛的适用范围,在企业级应用、互联网服务、移动开发等领域均扮演着举足轻重的角色,是现代软件开发不可或缺的重要工具之一。

    《iOS6开发指南》精彩书摘

    本书是智捷iOS课堂团队编写iOS系列丛书中的一本,目的是使一个有Objective-C基础的程序员通过本书的学习,能够从零基础到在App Store发布一款应用。全书分为4篇:  第一部分基础篇,介绍了iOS一些基础的知识。 第1...

    GoldHouse-for-iOS:iOS APM

    多线程 -(来源:京东零售技术) 本地持久化 非原子和原子 - - App卡顿检测 -(来源:MrPeak杂货铺) -(来源:微信移动) App性能检测 -(来源:美团) 总结-(来源:WeRead团队博客) -(来源:戴铭) -(来

    毕业设计&课程设计-这是一个简易多线程的文件传输软件.zip

    这是一个简易多线程的文件传输软件。 这是一个·QT可视化文件传输系统 项目实现了文件上传下载,用户登录注册登出,前端显示服务器上的文件夹内容等相关功能。 qt项目,工具源码,适合毕业设计、课程设计作业,所有...

    iOS开发实习面试题目

    你⽤用哪些办法实现过多线程? GCD和NSOperationQueue的⽐比较,各⾃自优缺点是什么,平时你是怎么使⽤用的? weak,assign,strong的意义和区别? atomic,nonatomic的意义和区别? OC中有没有多继承?OC中怎么实现多...

    使用Objective-C进行iOS移动开发

    此外、面向对象、结构体、类Class,以及手动内存管理、自动内存管理、协议与抽象类型、错误处理、iOS开发中的常见概念、Xcode操作、多媒体编程、网络编程、数据解析和加密、Sqlite数据库、多线程编程、内购等实用...

    iOS原理篇-内存管理/运行时/RunLoop/GCD及多线程

    本课程主要讲解iOS开发的一些中高级原理性的知识,...主要包括:内存管理、RunTime、RunLoop、GCD与多线程。 对原理的讲解会从源码分析的角度深入剖析,除录播的视频外,每章节还会配有相应的PPT、代码及相关参考文档。

    ReactNative移动开发工具 v0.71.7

    在幕后,React Native在主线程之外,在另一个背景线程里运行JavaScript引擎,两个线程之间通过一批量化的async消息协议来通信(有一个专门的React插件)。 UI方面React Native提供跨平台的类似Flexbox的布局系统,...

    iOS开发从入门到精通 [2021版]

    本视频教程拥有233节课程,包含iOS开发的方方面面:iOS开发基础理论知识、 视图、视图控制器、多媒体、数据处理、常用插件、信用卡卡号识别、自动化测试、网络访问、多线程、ShareSDK社会化分享、CoreImage、...

    QT项目为三维加工系统设计,主要仪器包括二维振镜,PI一维移动平台.zip

    QT项目为三维加工系统设计,主要仪器包括二维振镜,PI一维移动平台,索雷博光快门,大恒光快门、IDS工业CCD等,其中技术包括多线程、dll函数调用、实时显示等 软件开发设计:PHP、QT、应用软件开发、系统软件开发、...

    ReactNative移动开发工具-其他

    在幕后,React Native在主线程之外,在另一个背景线程里运行JavaScript引擎,两个线程之间通过一批量化的async消息协议来通信(有一个专门的React插件)。 UI方面React Native提供跨平台的类似Flexbox的布局系统,还...

    android开发资料大全

    在Android中实现多线程断点下载 Android提高篇内容整理 android移动开发案例精选 Android通过画线实现button效果 Android如何防止apk程序被反编译 Android 之 AIDL 和远程 Service 调用 Android 相对布局技巧 ...

Global site tag (gtag.js) - Google Analytics