iOS面试相关part1--多线程网络

2016-10-22  本文已影响34人  喵鸢

1. 进程和线程

概念

关系

联系

区别

2. 多线程

iOS中的多线程

多线程原理

3. 多线程的实现

pthread

NSThread

GCD

NSOperation

4. NSThread线程的状态

5. 线程安全

原子属性 非原子属性
atomic (默认) nonatomic
会为属性setter方法加锁 不会为属性setter方法加锁
安全 不安全
消耗性能,适合内存大的设备 适合内存小的设备

6. 线程通信

NSThread

    第一种方式
  //    [self performSelectorOnMainThread:@selector(showImage:) withObject:image waitUntilDone:YES];

    第二种方式
  //    [self.imageView performSelectorOnMainThread:@selector(setImage:) withObject:image waitUntilDone:YES];

    第三种方式
        [self.imageView performSelector:@selector(setImage:) onThread:[NSThread mainThread] withObject:image waitUntilDone:YES];

7. GCD

1)GCD的全称是Grand Central Dispatch,是iOS开发中一门用来实现多线程编程的技术
2)GCD本身是纯C语言的,但内部提供了非常多强大的函数
3)GCD是苹果公司为多核的并行运算提出的解决方案,并且自动利用更多的CPU内核(比如双核、四核)
4)GCD会自动管理线程的生命周期(比如创建线程、调度任务、销毁线程等等都不需要程序员关系)
5)使用GCD实现多线程编程只需要两个步骤,先封装好要执行的任务(代码块),然后把任务添加到对应的队列中即可
上一篇 下一篇

猜你喜欢

热点阅读