iPhone开发 - 多线程
文章平均质量分 81
Red__King
太多要说的,不够用
展开
-
GCD之dispatch queue
iOS中多线程编程工具主要有: NSThreadNSOperationGCD 这三种方法都简单易用,各有千秋.但无疑GCD是最有诱惑力的,因为其本身是apple为多核的并行运算提出的解决方案.虽然当前移动平台用双核的不多,但不影响GCD作为多线程编程的利器(ipad2已经是双核了,这无疑是一个趋势). http://www.cnblogs.com/scorpiozj/archive/2转载 2012-11-24 21:12:04 · 279 阅读 · 0 评论 -
iOS多线程
iPhone 中的线程应用并不是无节制的,官方给出的资料显示iPhone OS下的主线程的堆栈大小是1M,第二个线程开始都是512KB。并且该值不能通过编译器开关或线程API函数来更改。 只有主线程有直接修改UI的能力。 一、线程创建与启动 线程创建主要有二种方式: - (id)init; // designated initializer - (id)initWithTarget:原创 2012-11-12 21:51:27 · 350 阅读 · 0 评论 -
iphone ios 如何使用gcd,block
http://blog.sina.com.cn/s/blog_45e2b66c01010dhd.html 1。GCD之dispatch queue http://www.cnblogs.com/scorpiozj/archive/2011/07/25/2116459.html 2。iOS中GCD的魔力 http://blog.csdn.net/favormm/artic原创 2012-12-13 23:35:32 · 485 阅读 · 0 评论 -
NSThread创建CFRunLoop
首先是文档对CFRunLoop部分的一个概述,可以帮助我们简单的了解一下CFRunLoop的主要的特性: Overview A CFRunLoop object monitors sources of input to a task and dispatches control when they become ready for processing. Examples of转载 2012-12-22 00:10:09 · 384 阅读 · 0 评论 -
iOS多线程
iOS的多线程,涉及到如下一些类,这里集中做个介绍,免得混淆。 1、NSTimer 很显然,这是定时器类 2、NSTask iOS 不支持 NSTask 在很多并发操作的时候,多线程太耗资源,也太危险,这时候多进程出来了,通过 NSTask 可调用外部可执行程序 3、NSThread iOS 支持多个层次的多线程编程,层次越高的抽象程度越高,使用起来也越方转载 2012-11-24 21:13:37 · 363 阅读 · 0 评论 -
GCD学习
iOS中多线程编程工具主要有: NSThreadNSOperationGCD 这三种方法都简单易用,各有千秋.但无疑GCD是最有诱惑力的,因为其本身是apple为多核的并行运算提出的解决方案.虽然当前移动平台用双核的不多,但不影响GCD作为多线程编程的利器(ipad2已经是双核了,这无疑是一个趋势). http://www.cnblogs.com/scorpiozj/archive/20转载 2012-11-13 22:32:53 · 339 阅读 · 0 评论 -
如何在 iOS 5 中使用 Block (1)
这篇文章来自 iOS 教程团队成员 Adam Burkepile, 一个全职软件咨询顾问和独立 iOS 开发者。 看看他最新的 app Pocket No Agenda , 或者在 Twitter 上面关注它。 Order up some Storyboards and Blocks in this tutorial! Block 是对 C/Objective-C 不可转载 2012-11-20 21:42:28 · 535 阅读 · 0 评论 -
如何在 iOS 5 中使用 Block (2)
这篇文章来自 iOS 教程团队成员 Adam Burkepile, 一个全职软件咨询顾问和独立 iOS 开发者。 看看他最新的 app Pocket No Agenda , 或者在 Twitter 上面关注它。 Order up some Storyboards and Blocks in this tutorial! 欢迎回到 在 iOS 5 中使用 Block 系列转载 2012-11-20 21:43:17 · 1108 阅读 · 0 评论 -
iOS并发编程指南
iOS Concurrency Programming Guide iOS 和 Mac OS 传统的并发编程模型是线程,不过线程模型伸缩性不强,而且编写正确的线程代码也不容易。Mac OS 和 iOS 采取 asynchronous design approach 来解决并发的问题。 引入的异步技术有两个: Grand Central Dispatch:系统管理线程,你不需要编写转载 2012-11-24 10:42:40 · 391 阅读 · 0 评论 -
iOS-的多核编程和内存管理
这篇文章转自 http://anxonli.iteye.com/blog/1097777,集中与iOS的多核编程和内存管理,大家完全可以使用苹果的多核编程框架来写出更加responsive的应用。 多核运算 在iOS中concurrency编程的框架就是GCD(Grand Central Dispatch), GCD的使用非常简单。它把任务分派到不同的queue队列来处理。开发转载 2012-11-26 23:51:49 · 344 阅读 · 0 评论 -
NSthread用法1
等待20秒: [NSThread sleepForTimeInterval:20]; 问: 用这两个下载图片,为什么明显能感觉到dispatch慢,代码那里有问题吗? - (IBAction) startDownLoad:(id)sender { [activity startAnimating]; //启动线程 // [NSThre转载 2012-11-26 23:18:36 · 355 阅读 · 0 评论 -
NSThread起线程用法2
NSThread是起线程的主角,大部分时候我们使用这个类。 建一个view-based application. 在viewcontroller.h中 @interface tNSThreadViewController : UIViewController { NSThread *t1; BOOL bExit; } @property BOOL bExit; -转载 2012-11-26 23:19:29 · 298 阅读 · 0 评论 -
RunLoop使用
利用NSRunLoop阻塞NSOperation线程 在使用NSOperationQueue简化多线程开发中介绍了多线程的开发,我这里主要介绍一下使用NSRunLoop阻塞线程。 主要使用在NStimer定时启用的任务或者异步获取数据的情况如socket获取网络数据,要阻塞线程,直到获取数据之后在释放线程。 下面是线程中没有使用NSRunLoop阻塞线程的代码和执行效果: 线程类: #i转载 2012-11-26 22:54:19 · 441 阅读 · 0 评论 -
NSThread起线程用法3
OS 支持多个层次的多线程编程,层次越高的抽象程度越高,使用起来也越方便,也是苹果最推荐使用的方法。下面根据抽象层次从低到高依次列出iOS所支持的多线程编程范式: 1, Thread; 2, Cocoa operations; 3, Grand Central Dispatch (GCD) (iOS4 才开始支持) 下面简要说明这三种不同范式: Thread 是这三种范式里面相对轻量转载 2012-11-26 23:20:36 · 353 阅读 · 0 评论 -
blocks 学习
Ios4已经直接支持blocks,很有必要学习一下。 在ios,blocks是对象,它封装了一段代码,这段代码可以在任何时候执行。Blocks可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值。它和传统的函数指针很类似,但是有区别:blocks是inline的,并且它对局部变量是只读的。 Blocks的定义: int (^Multiply)(int, int转载 2012-11-24 21:11:31 · 317 阅读 · 0 评论 -
NSRunLoop 概述和原理
1.什么是NSRunLoop? 我们会经常看到这样的代码: - (IBAction)start:(id)sender { pageStillLoading = YES; [NSThread detachNewThreadSelector:@selector(loadPageInBackground:)toTarget:self withObject:nil]; [progress se转载 2012-11-13 12:22:26 · 342 阅读 · 0 评论 -
iOS (objective-c) 中的多线程互斥同步问题
在iOS中有几种方法来解决多线程访问同一个内存地址的互斥同步问题: >>>方法一,@synchronized(id anObject),(最简单的方法) 会自动对参数对象加锁,保证临界区内的代码线程安全 @synchronized(self) { // 这段代码对其他 @synchronized(self) 都是互斥的 // self 指向同一个对象}转载 2012-11-25 12:20:00 · 553 阅读 · 0 评论 -
详解IOS开发应用之并发Dispatch Queues
详解IOS开发应用之并发Dispatch Queues是本文哟啊介绍的内容,我们几乎可以调度队列去完成所有用线程来完成的任务。调度队列相对于线程代码更简单,易于使用,更高效。下面讲主要简述调度队列,在应用中如何使用调度队列去执行任务。 1、关于调度队列 所有的调度队列都是先进先出队列,因此,队列中的任务的开始的顺序和添加到队列中的顺序相同。GCD自动的为我们提供了一些调度队列,我们也可转载 2014-03-16 13:41:35 · 516 阅读 · 0 评论