本节要点:
1.多线程的概念
2.掌握iOS中多线程的多种创建方式
多线程的概念
● 每个进程是一个应用程序,都有独立的内存空间
● 同一个进程中的线程共享其进程中的内存和资源
● 使用多线程技术,提高CPU的使用率,防止主线程堵塞。
● 多个线程可以提高应用程序在多核系统上的实时性能
● 每个程序都有⼀一个主线程,程序启动时,创建主线程,调用main 函数来启动程序。
● 主线程的生命周期和程序是绑定的,程序结束时,主线程停止。
● 任何有可能堵塞的任务不要在主线程执行,主线程不流畅会导致 程序界面的不流畅。(如:网络访问、大文件写入磁盘、
清理缓存,等等)
多线程的创建和启动
第1种方式
[plain] view plaincopy
- NSThread *t = [[NSThread alloc] initWithTarget:self selector:@selector(mutableThread) object:nil];
- [t start];
[plain] view plaincopy
- [NSThread detachNewThreadSelector:@selector(mutableThread) toTarget:self withObject:nil];
第3种方式
[plain] view plaincopy
- [self performSelectorInBackground:@selector(mutableThread) withObject:nil];
第4种block语法开启一个线程
[plain] view plaincopy
- NSOperationQueue *threadQueue = [[NSOperationQueue alloc] init]; [threadQueue addOperationWithBlock:^(void) {
- NSThread *t = [NSThread currentThread];
- if (![t isMainThread]) {
- NSLog(@"是多线程");
[plain] view plaincopy
- }
第5种方式线程池
[plain] view plaincopy
- NSOperationQueue *threadQueue = [[NSOperationQueue alloc] init]; NSInvocationOperation *op = [[NSInvocationOperation alloc]
- initWithTarget:self
- selector:@selector(mutableThread) object:nil];
- [threadQueue addOperation:op];
[plain] view plaincopy
- dispatch_queue_t network_queue;
- network_queue = dispatch_queue_create("com.myapp.network", nill);
- dispatch_async(network_queue, ^{
- UIImage *cellImage = [self loadMyImageFromNetwork:image_url];
- NSLog("多线程");
- } );
发表评论
-
如何使用AV Foundation从摄像头将视频帧捕获为图像
2012-11-15 17:21 7377如果译错,感谢指出。 英文原文地址:https://d ... -
iOS单元测试
2012-11-05 11:37 863转自:http://www.cnblogs.com/ke ... -
Core Data数据持久化的使用
2012-10-30 21:31 1000CoreData 是ios中用来对数据做持久化的一个框架 ... -
ASIHTTPRequest缓存策略的设置
2012-10-30 17:23 3822ASIHTTPRequest 是一款强大的网络请求框架,该框架 ... -
【无限互联】xcode自定义类的模板
2012-10-23 19:37 1109翻译:http://www.bobmccune.com/ ... -
【无限互联】适配iOS6和iPhone5屏幕
2012-10-23 18:05 24231. iOS6的mo模拟器比较大,通过comman ... -
【无限互联】mac下配置svn服务器
2012-10-22 13:30 718在mac下配置svn服务器其实很简单,只需要简单的几句命令就可 ... -
【无限互联】iOS开发block用法之UIAlertView控件的修改
2012-10-10 17:06 2613原始的UIAlertView的需要通过委托方法来实现按钮 ... -
Objective-C新特性
2012-09-05 14:38 658基于Xcode4.4(不完全独有)。1. 成员方法无需前置声明 ... -
iphone-NSDate日期处理
2012-08-31 16:25 1022NSDate存储的是世界标准时(UTC),输出时需要 ... -
iphone开发资源汇总
2012-08-31 16:16 1560如何用Facebook graphic api上传视 ... -
iOS-如何让xcode自动检查内存泄露
2012-08-31 16:05 1051在project-setting中找到 “Run Static ... -
UIScrollView的属性总结
2012-02-08 15:58 4381在滚动过程当中,其实是在修改原点坐标 当手指触摸后, scr ... -
iPhone开发之 ARC是什么
2012-01-17 16:58 1326相关链接:http://blog.csdn ... -
画图时 自己做的一小笔记
2012-01-07 21:02 9180 CGContextRef context = UIGra ... -
让Xcode 4.2生成的app支持旧版iOS设备(armv6)
2012-01-07 00:46 1279这几天遇到一个非常奇怪的问题,基于Xcode 4.2开发的ap ... -
5个开源库的JSON解析速度测试
2011-12-03 23:15 1404iOS5新增了JSON解析的API ... -
获取iOS设备当前ip地址
2011-11-17 23:16 1331第一种方法是用系统api的方式获取,如下 #include & ... -
Quartz 2D编程指南(2) - 图形上下文(Graphics Contexts)
2011-11-12 00:08 1387一个Graphics Context表示一 ... -
Quartz 2D编程指南(1) - 概览
2011-11-11 23:57 1646Quartz 2D是一个二维图形绘制引擎,支持iOS环境和Ma ...
相关推荐
无限互联iOS开发课件—iPhone开发工具安装及介绍.pdf
UI第一章:无限互联iOS开发教程课件-- iPhone开发入门
无限互联ios开发之双向滑动视图.pdf
【无限互联】iOS开发视频教程课件第四章Foundation框架课件是由无限互联提供的iOS开发视频教程对应的课件,课件非常详细的讲解了Foudation框架里面的常用类和方法。 包括: NSNumber、NSString、NSArray、...
无限互联ios视频教程全集之UI基础部分【分辨率1280×800】
01 第一节课 iPhone开发入门 02 第二节课 UIView与UIWindow 03 第三节课 常用控件 04 第四节课 视图控制器 05 第五节课 导航控制器 06 第六节课 标签控制器 07 第七节课 表视图基本概念和用法 08 第八节课 ...
无限互联_IOS视频教程_OC教程_课件、源码
【无限互联】IOS开发之手势密码的实现.pdf
无限互联_IOS视频教程_UI教程_课件+源码 part1,和part2放通一文件夹下解压
【无限互联】iOS开发视频教程课件第1.2章OC基础语法课件 , 配合源代码和视频教程使用: 视频地址: http://www.tudou.com/programs/view/eXYMTgiCfm8/
【无限互联】iOS开发视频教程课件第四章Foundation框架源代码,本课程源代码是结合第四章Foudation框架课件来使用,以及培训第四章视频教程来使用的。 第四章4.1 Foudation框架以及常用类和方法的使用视频教程:...
无限互联3G学院 iOS开发视频教程 UI:第1部分 视频上出现的重要ppt内容
【】无限互联iOS开发视频教程-Objective-C部分(第一部分) 【】无限互联iOS开发视频教程-Objective-C部分(第七部分) 【】无限互联iOS开发视频教程-Objective-C部分(第三部分) 【】无限互联iO 资源...
无限互联3G学院 iOS开发视频教程 UI:第2部分 视频上出现的主要ppt内容
本文通过实现一个自定义的星星视图,让iOS软件开发者学会如何封装一个自定义的控件,封装一个自定义的控件要注意哪些,重要是考虑自定义控件的灵活和可扩展性;
【无限互联】iOS开发视频教程第1、2章OC基础语法源代码, 对应第1、2章视频和课件使用。
无限互联iPhone开发视频教学文档以及Demo源码(UI第一到三章)
无线互联开发教程1-9章 pdf 还有源码
苹果移动互联应用软件开发(iOS开发)选修课校企合作建设方案
该文档时本人在学习iOS的过程中总结的一些重要指示点,可以帮助初学者的一本手中册。无线互联IOS笔记。