![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
andy_jiangbin
这个作者很懒,什么都没留下…
展开
-
iOS多线程编程指南(二)线程管理
线程管理 Mac OS X和iOS里面的每个进程都是有一个或多个线程构成,每个线程都代表一个代码的执行路径。每个应用程序启动时候都是一个线程,它执行程序的main函数。应用程序可以生成额外的线程,其中每个线程执行一个特定功能的代码。 当应用程序生成一个新的线程的时候,该线程变成应用程序进程空间内的一个实体。每个线程都拥有它自己的执行堆栈,由内核调度独立的运行时间片。一个线程可以和其他线转载 2013-09-26 22:17:06 · 527 阅读 · 0 评论 -
NSTimer总结
最近项目测试的时候会碰到集中情况,一种是压力测试的时候,批量发送数据会导致界面很卡顿,另外一种就是动画正在进行的时候,移动列表,会导致动画停止,如果不移动列表,动画马上接着运行。这是怎么回事呢,一开始个人认为移动列表,也就是触摸屏幕的时候把主线程阻塞了,看完代码不会引起这种情况,另一种就是移动列表时候,定时器被中断。通过网上查阅资料,是由于定时器创建时候用默认的RUnloop模式,而没有用trac转载 2015-04-20 10:46:29 · 373 阅读 · 0 评论 -
iOS并发编程指南
原文地址:iOS并发编程指南作者:流云轻舞 iOS Concurrency Programming Guide iOS 和 Mac OS 传统的并发编程模型是线程,不过线程模型伸缩性不强,而且编写正确的线程代码也不容易。Mac OS 和 iOS 采取 asynchronous design approach 来解决并发的问题。 引入的异步技术有两个: Grand Cen转载 2013-12-05 09:37:22 · 553 阅读 · 0 评论 -
NSThread 、NSRunLoop 和 Dispatch Queue
iOS多线程编程中,NSOperation和NSOperationQueue无疑是最常用的,它们能满足绝大部分情况下的线程操作。但在完成一些特殊的任务时,我们还是要使用的NSThread和NSRunLoop。 NSThread很好理解,它等同于Java中的Thread类。NSRunLoop却不太好理解。从字面上说,RunLoop可以翻译成“运行回路”或“运行循环”,我们可以把它看成是一种特殊的循转载 2013-12-04 23:01:57 · 470 阅读 · 0 评论 -
iphone开发第五课:performSelectorOnMainThread 和detachNewThreadSelector区别
举例说明怎么简单的创建一个子线程。 用到的类是NSThread类,这里使用detachNewTheadSelector:toTagaet:withObject创建一个线程。 函数setupThread:(NSArray*)userInfor。通过userInfor将需要的数据传到线程中。 函数定义:转载 2013-10-28 13:32:43 · 457 阅读 · 0 评论 -
performSelectorOnMainThread
[selfperformSelectorOnMainThread:@selector(fetchedData:) withObject:datawaitUntilDone:YES]; 会创建一个新的线程实行fetchedData函数,并传入参数data,并且会等待函数退出后再继续执行。 - (void)fetchedData:(NSData *)responseData {转载 2013-10-28 13:30:15 · 473 阅读 · 0 评论 -
如何使用NSOperations和NSOperationQueues(二)
线程 每一个应用程序至少有一个主线程。线程的工作就是去执行一系列的指令。在Cocoa Touch中,主线程包含应用程序的主运行回路。几乎所有你写的代码都会在主线程中执行,除非你特别创建了一个单独的线程,并在这个新线程中执行代码。 线程有两个显著的特征: 1.每个线程都有访问你的应用程序资源的同等权限;它包括访问除了局部变量之外的所有的对象。所以,任何对象都可能被任意线程修改,使用并且转载 2013-10-29 11:16:10 · 878 阅读 · 0 评论 -
IOS多线程
ios有三种主要方法:1、NSThread。2、NSOperation。3、GCD。 1、 NSThread: 调用方法如下:如果需要函数参数的话,可以通过Object传递。 1.1:[NSThread detachNewThreadSelector:@selector(threadInMainMethod:) toTarget:self withObject:nil转载 2013-10-29 11:28:37 · 550 阅读 · 0 评论 -
Block编程值得注意的那些事儿
一,前言 block 是在 iOS 4 中引入的新特性,它和 C++ 11 中的 lamba 表达式概念相似,有时候也被称为闭包。经过一段时间的使用,我发现要用对用好 block 还是有不少需要注意的地方,今天就来八一八这些值得注意的事儿。 本文源码下载:点此下载 二,block 注意事项 1,block 在实现时就会对它引用到的转载 2013-10-28 11:33:54 · 432 阅读 · 0 评论 -
NSOperation的子集–NSInvocationOperation 多线程编程
NSOperation的子集–NSInvocationOperation 多线程编程 多线程编程是防止主线程堵塞,增加运行效率等的最佳方法。而原始的多线程方法存在很多的毛病,包括线程锁死等。在Cocoa中,Apple提供了NSOperation这个类,提供了一个优秀的多线程编程方法。 本次介绍NSOperation的子集–NSInvocationOperation。 Ios代码转载 2013-10-26 17:17:52 · 398 阅读 · 0 评论 -
iOS多线程编程指南(一)关于多线程编程
第一章 关于多线程编程 多年来,计算机的最大性能主要受限于它的中心微处理器的速度。然而由于个别处理器已经开始达到它的瓶颈限制,芯片制造商开始转向多核设计,让计算机具有了同时执行多个任务的能力。尽管Mac OS X利用了这些核心优势,在任何时候可以执行系统相关的任务,但自己的应用程序也可以通过多线程方法利用这些优势。 1.1 什么是多线程 多线程是一个比较轻转载 2013-09-26 22:16:19 · 485 阅读 · 0 评论 -
iOS多线程编程指南(三)Run Loop
Run Loops Run loops是线程相关的的基础框架的一部分。一个run loop就是一个事件处理的循环,用来不停的调度工作以及处理输入事件。使用run loop的目的是让你的线程在有工作的时候忙于工作,而没工作的时候处于休眠状态。 Run loop的管理并不完全自动的。你仍然需要设计你的线程代码在合适的时候启动run loop并正确响应输入事件。Cocoa和Core Fund转载 2013-09-26 22:14:09 · 453 阅读 · 0 评论 -
iOS多线程编程指南(附录)
本附录描述了Mac OS X和iOS上面一些关键的高级线程安全的框架。本附录的信息有可能会发生改变。 Cocoa 在Cocoa上面使用多线程的指南包括以下这些: 不可改变的对象一般是线程安全的。一旦你创建了它们,你可以把这些对象在线程间安全的传递。另一方面,可变对象通常不是线程安全的。为了在多线程应用里面使用可变对象,应用必须适当的同步。关于更多信息,参阅”可变和不可变对比”。许转载 2013-09-26 22:19:11 · 481 阅读 · 0 评论 -
iOS多线程编程指南(四)线程同步
第四章 线程同步 应用程序里面多个线程的存在引发了多个执行线程安全访问资源的潜在问题。两个线程同时修改同一资源有可能以意想不到的方式互相干扰。比如,一个线程可能覆盖其他线程改动的地方,或让应用程序进入一个未知的潜在无效状态。如果你幸运的话,受损的资源可能会导致明显的性能问题或崩溃,这样比较容易跟踪并修复它。然而如果你不走运,资源受损可能导致微妙的错误,这些错误不会立即显现出来,而是转载 2013-09-26 22:18:09 · 769 阅读 · 0 评论 -
GCD是否创建线程总结
同步函数不具备开启线程的能力,无论是什么队列都不会开启线程;异步函数具备开启线程的能力,开启几条线程由队列决定(串行队列只会开启一条新的线程,并发队列会开启多条线程)原创 2016-09-05 12:28:40 · 689 阅读 · 0 评论