多线程
文章平均质量分 96
Sodaslay
这个作者很懒,什么都没留下…
展开
-
iOS开发之多线程并发编程
以下是开发初期收集整理的一点资料 多线程之NSInvocationOperation多线程编程是防止主线程堵塞,增加运行效率等等的最佳方法。而原始的多线程方法存在很多的毛病,包括线程锁死等。在Cocoa中,Apple提供了NSOperation这个类,提供了一个优秀的多线程编程方法。本次介绍NSOperation的子集,简易方法的NSInvocationOperation:@i转载 2014-01-10 16:46:33 · 934 阅读 · 0 评论 -
深入浅出 Cocoa 多线程编程之 block 与 dispatch queue
block是 Apple在 GCC 4.2中扩充的新语法特性,其目的是支持多核并行编程。我们可以将 dispatch_queue与 block结合起来使用,方便进行多线程编程。本文源代码下载:点击下载1,实验工程准备在 XCode 4.0中,我们建立一个 Mac OS X Application类型的 Command Line Tool,在 Type 里面我转载 2012-08-08 21:33:45 · 521 阅读 · 0 评论 -
iOS多线程编程指南(三)Run Loop
Run LoopsRun loops是线程相关的的基础框架的一部分。一个run loop就是一个事件处理的循环,用来不停的调度工作以及处理输入事件。使用run loop的目的是让你的线程在有工作的时候忙于工作,而没工作的时候处于休眠状态。Run loop的管理并不完全自动的。你仍然需要设计你的线程代码在合适的时候启动run loop并正确响应输入事件。Cocoa和Core Fundatio转载 2012-11-25 00:22:23 · 1142 阅读 · 0 评论 -
iOS中Run Loop的那些坑
前段时间写了个关于iOS多线程编程的系列:iOS多线程编程Part 1/3 - NSThread & Run LoopiOS多线程编程Part 2/3 - NSOperationiOS多线程编程Part 3/3 - GCDiOS多线程编程Part 1/3 - NSThread & Run Loop中讨论了Run Loop的机制、接口和需要注意的坑,不过由于内容较多,描述Run转载 2015-04-20 13:35:40 · 725 阅读 · 0 评论 -
iOS多线程编程:线程同步总结
1:原子操作 - OSAtomic系列函数iOS平台下的原子操作函数都以OSAtomic开头,使用时需要包含头文件。不同线程如果通过原子操作函数对同一变量进行操作,可以保证一个线程的操作不会影响到其他线程内对此变量的操作,因为这些操作都是原子式的。因为原子操作只能对内置类型进行操作,所以原子操作能够同步的线程只能位于同一个进程的地址空间内。2:锁 - NSLock系列对象iOS平台转载 2012-07-13 15:49:58 · 1571 阅读 · 0 评论 -
@synchronized()
Objective-c支持多线程的应用程序。 这意味着,两个线程可以尝试修改在同一时间相同的对象,这种情况可能导致在程序中的严重问题。 为了保护代码部分在一个时间被执行在多个线程,Objective - C提供了@synchronized()同步指令。在@ synchronized()指令锁定的的代码段由单个线程使用。其他线程被阻塞,直到该线程退出保转载 2012-08-27 14:53:27 · 1156 阅读 · 0 评论 -
iOS多线程编程指南(四)线程同步
第四章 线程同步应用程序里面多个线程的存在引发了多个执行线程安全访问资源的潜在问题。两个线程同时修改同一资源有可能以意想不到的方式互相干扰。比如,一个线程可能覆盖其他线程改动的地方,或让应用程序进入一个未知的潜在无效状态。如果你幸运的话,受损的资源可能会导致明显的性能问题或崩溃,这样比较容易跟踪并修复它。然而如果你不走运,资源受损可能导致微妙的错误,这些错误不会立即显现出来,而是很久转载 2012-11-25 00:23:12 · 834 阅读 · 0 评论 -
iOS多线程编程指南(附录)
本附录描述了Mac OS X和iOS上面一些关键的高级线程安全的框架。本附录的信息有可能会发生改变。Cocoa在Cocoa上面使用多线程的指南包括以下这些:不可改变的对象一般是线程安全的。一旦你创建了它们,你可以把这些对象在线程间安全的传递。另一方面,可变对象通常不是线程安全的。为了在多线程应用里面使用可变对象,应用必须适当的同步。关于更多信息,参阅”可变和不可变对比”。许多对转载 2012-11-25 00:24:04 · 674 阅读 · 0 评论 -
iOS多线程编程指南(一)关于多线程编程
第一章 关于多线程编程多年来,计算机的最大性能主要受限于它的中心微处理器的速度。然而由于个别处理器已经开始达到它的瓶颈限制,芯片制造商开始转向多核设计,让计算机具有了同时执行多个任务的能力。尽管Mac OS X利用了这些核心优势,在任何时候可以执行系统相关的任务,但自己的应用程序也可以通过多线程方法利用这些优势。1.1 什么是多线程多线程是一个比较轻量级的方法来转载 2012-11-25 00:20:44 · 600 阅读 · 0 评论 -
iOS多线程编程指南(二)线程管理
线程管理Mac OS X和iOS里面的每个进程都是有一个或多个线程构成,每个线程都代表一个代码的执行路径。每个应用程序启动时候都是一个线程,它执行程序的main函数。应用程序可以生成额外的线程,其中每个线程执行一个特定功能的代码。当应用程序生成一个新的线程的时候,该线程变成应用程序进程空间内的一个实体。每个线程都拥有它自己的执行堆栈,由内核调度独立的运行时间片。一个线程可以和其他线程或其他转载 2012-11-25 00:21:27 · 665 阅读 · 0 评论 -
iOS中GCD的那些坑
之前一个系列中iOS多线程编程Part 3/3 - GCD介绍了GCD的各类接口,别仅仅使用了最基本的dispatch_async和dispatch_sync接口提交个Block完事,那就白瞎GCD的强大功能了。要用高级接口,照旧会有坑在那里,绝大多数坑并不是设计缺陷,而是自身特性造成的误用,本文会记录下这些坑。坑一GCD需要自己生成AutoreleasePool吗?正常我们用NS转载 2015-04-20 12:53:04 · 791 阅读 · 0 评论