类似于什么是进程什么是线程在这里我就不多浪费时间了(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 10+Swift 3+Xcode 8开发移动应用的关键技术。 本书共分三篇,*篇为基础篇,主要介绍了iOS开发基础知识,包括iOS系统的历史、Swift 3.0语言、UI界面构建技术...
操作系统:LInux、IOS、树莓派、安卓开发、微机操作系统、网络操作系统、分布式操作系统等。此外,还有嵌入式操作系统、智能操作系统等。 网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络...
Delphi 编写多线程.pdf Delphi 网络高级编程.pdf Delphi[1].下深入Windows核心编程.pdf Delphi_10.1_Berlin_手册_简体中文版.pdf Delphi下深入Windows核心编程.pdf Delphi下用Intraweb开发WEB程序应用实战_Password_...
在iOS开发中,实现多线程的的方式有很多种,常用的有pthread、NSThread、GCD与NSOperation。在实际应用中,多线程技术也有着非常多的使用场景,比如异步的网络请求、异步的图片加载、后台执行复杂任务等等。 在iOS...
兼容Java,iOS,Android三端的AES-128-ECB加密算法,附...综上所述,Java凭借其强大的特性和广泛的适用范围,在企业级应用、互联网服务、移动开发等领域均扮演着举足轻重的角色,是现代软件开发不可或缺的重要工具之一。
本书是智捷iOS课堂团队编写iOS系列丛书中的一本,目的是使一个有Objective-C基础的程序员通过本书的学习,能够从零基础到在App Store发布一款应用。全书分为4篇: 第一部分基础篇,介绍了iOS一些基础的知识。 第1...
多线程 -(来源:京东零售技术) 本地持久化 非原子和原子 - - App卡顿检测 -(来源:MrPeak杂货铺) -(来源:微信移动) App性能检测 -(来源:美团) 总结-(来源:WeRead团队博客) -(来源:戴铭) -(来
这是一个简易多线程的文件传输软件。 这是一个·QT可视化文件传输系统 项目实现了文件上传下载,用户登录注册登出,前端显示服务器上的文件夹内容等相关功能。 qt项目,工具源码,适合毕业设计、课程设计作业,所有...
你⽤用哪些办法实现过多线程? GCD和NSOperationQueue的⽐比较,各⾃自优缺点是什么,平时你是怎么使⽤用的? weak,assign,strong的意义和区别? atomic,nonatomic的意义和区别? OC中有没有多继承?OC中怎么实现多...
此外、面向对象、结构体、类Class,以及手动内存管理、自动内存管理、协议与抽象类型、错误处理、iOS开发中的常见概念、Xcode操作、多媒体编程、网络编程、数据解析和加密、Sqlite数据库、多线程编程、内购等实用...
本课程主要讲解iOS开发的一些中高级原理性的知识,...主要包括:内存管理、RunTime、RunLoop、GCD与多线程。 对原理的讲解会从源码分析的角度深入剖析,除录播的视频外,每章节还会配有相应的PPT、代码及相关参考文档。
在幕后,React Native在主线程之外,在另一个背景线程里运行JavaScript引擎,两个线程之间通过一批量化的async消息协议来通信(有一个专门的React插件)。 UI方面React Native提供跨平台的类似Flexbox的布局系统,...
本视频教程拥有233节课程,包含iOS开发的方方面面:iOS开发基础理论知识、 视图、视图控制器、多媒体、数据处理、常用插件、信用卡卡号识别、自动化测试、网络访问、多线程、ShareSDK社会化分享、CoreImage、...
QT项目为三维加工系统设计,主要仪器包括二维振镜,PI一维移动平台,索雷博光快门,大恒光快门、IDS工业CCD等,其中技术包括多线程、dll函数调用、实时显示等 软件开发设计:PHP、QT、应用软件开发、系统软件开发、...
在幕后,React Native在主线程之外,在另一个背景线程里运行JavaScript引擎,两个线程之间通过一批量化的async消息协议来通信(有一个专门的React插件)。 UI方面React Native提供跨平台的类似Flexbox的布局系统,还...
在Android中实现多线程断点下载 Android提高篇内容整理 android移动开发案例精选 Android通过画线实现button效果 Android如何防止apk程序被反编译 Android 之 AIDL 和远程 Service 调用 Android 相对布局技巧 ...