
多线程
文章平均质量分 81
explore_zhang
iOS从业者和爱好者。
展开
-
NSOperation的介绍
iOS开发多线程篇—NSOperation简单介绍一、NSOperation简介1. 简单说明a. NSOperation的作用:是OC语言中基于GCD的面向对象的封装,使用起来比GCD更加简单(面向对象);提供了一些用GCD不好实现的功能,使用NSOperation不用关心线程以及线程的生命周期(苹果推荐使用)。b. 配原创 2015-10-27 23:51:36 · 354 阅读 · 0 评论 -
多线程基础知识介绍
1.基本概念a. 同步执行:1个线程中任务的执行是串行的;如果要在1个线程中执行多个任务,那么只能一个一个地按顺序执行这些任务;也就是说,在同一时间内,1个线程只能执行1个任务。b. 异步执行:多个人可以同时执行多个任务。c. 进程:进程是指在系统中正在运行的一个应用程序;每个进程之间是独立的,每个进程均运行在其专用的且受保护的内存空间内(比如同时打原创 2015-10-10 22:45:31 · 863 阅读 · 1 评论 -
iOS中多线程的实现方案之pthread和NSThread
【文章结尾附上iOS中多线程的实现方案总结】一、pthreada. demo1b. demo2c. 对demo2中提到的 __bridge 的理解ARC只负责OC的代码,不负责 c 的代码;在ARC中,使用到和 c 语言对应的数据类型,应该使用__bridge桥接,在MRC中,不需要桥接;在OC中,如果是ARC的话,编译的时候会自动添加ret原创 2015-10-10 22:56:40 · 506 阅读 · 0 评论 -
多线程的安全隐患
1. 资源共享1块资源可能会被多个线程共享,也就是多个线程可能会访问同一块资源;比如多个线程访问同一个对象、同一个变量、同一个文件;当多个线程访问同一块资源时,很容易引发数据错乱和数据安全问题。2. 安全隐患示例–存钱取钱3. 安全隐患分析4. 安全隐患解决–互斥锁5. 互斥锁使用格式@synchron原创 2015-10-11 00:26:09 · 623 阅读 · 0 评论 -
原子和非原子属性
一、原子和非原子属性1. OC在定义属性时有nonatomic和atomic两种选择:atomic:原子属性,为setter方法加锁(默认就是atomic);nonatomic:非原子属性,不会为setter方法加锁。2. nonatomic和atomic的对比atomic:线程安全,需要消耗大量的资源;nonatomic:非线程安全,适合内原创 2015-10-11 00:28:53 · 2285 阅读 · 0 评论 -
线程间通信
1. 什么叫做线程间通信在1个进程中,线程往往不是孤立存在的,多个线程之间需要经常进行通信。2. 线程间通信的体现1个线程传递数据给另1个线程;在1个线程中执行完特定任务后,转到另1个线程继续执行任务。线程间通信常用方法- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(n原创 2015-10-11 00:50:15 · 435 阅读 · 0 评论 -
Weak、Strong、assign 和 autorelease + 1道面试题
一、weak、strong、assign的理解1. OC 对象用 strong,为什么连线的ui控件却用weak?controller → view → view.subViews → imageView → 强引用controller → imageView → 弱引用controller → imageView 这个位置换成 strong 也可以,但是不建议,如原创 2015-10-11 01:18:37 · 537 阅读 · 0 评论 -
iOS中的消息循环
1. 消息循环概念RunLoop就是消息循环,每一个线程内部都有一个消息循环。只有主线程的消息循环默认开启,子线程的消息循环默认不开启。 2. 子线程开启消息循环的3种方式:(1)开启消息循环 使用run方法后无法停止消息循环。[[NSRunLoopcurrentRunLoop]run];(2)指定循环运行时间[[NSRunLoo原创 2015-10-16 20:34:36 · 1905 阅读 · 0 评论 -
iOS开发之多线程编程:GCD
1. 什么是GCD?全称是Grand Central Dispatch,是纯C语言,提供了非常多强大的函数。2. GCD的优势GCD是苹果公司为多核的并行运算提出的解决方案;GCD会自动利用更多的CPU内核(比如双核、四核);GCD会自动管理线程的生命周期(创建线程、调度任务、销毁线程);程序员只需要告诉GCD想要执行什么任务,不需要编写任何线程管理原创 2015-10-16 23:04:10 · 459 阅读 · 0 评论 -
ARC环境下两种单例设计模式的比较:GCD和同步锁
A. 单例模式的设计思路:(1)永远只分配一块内存来创建对象;(2)提供一个类方法,返回内部唯一的实例;(3)确保 init 方法只初始化一次;(通常采用懒加载的方式在第一次用到实例的时候再去创建它。)B. 单例模式的作用 :可以保证在程序运行过程,一个类只有一个实例,而且该实例易于供外界访问,从而方便地控制了实例个数,并节约系统资源。原创 2015-12-08 23:27:19 · 672 阅读 · 0 评论