美文网首页ios多线程基础理论知识及面试
IOS面试题(多线程) --- 多线程基础

IOS面试题(多线程) --- 多线程基础

作者: ShawnAlex | 来源:发表于2022-04-22 22:32 被阅读0次

    OC面试题目合集地址

    问题1:ios系统多线程当中为我们提供了哪几种技术方案? / 接触过的多线程有哪些?

    答案:

    问题1
    一般回答上来这三个即可, pthread选答即可 多线程技术方案

    问题2: 线程与进程之间关系? / 你怎么了解线程与进程?

    进程

    • 进程是指在系统中正在运行的一个应用程序
    • 每个进程之间都是独立的, 每个进程均运行在其受保护的内存空间中
    • 通过活动监控器可查看mac系统中所开启的线程

    线程

    • 线程是进程的基本单元, 一个进程的所有任务都在线程中执行
    • 进程想要执行任务, 必须有线程, 进程至少要有一条线程
    • 程序启动会默认开启一条线程, 这条线程被称为主线程

    问题3: 多线程优缺点

    优点:
    1. 提高程序执行效率
    2. 提高资源利用率
    3. 线程执行完任务后会自动销毁
    缺点:
    1. 开启线程需要占用额外内存空间。大量线程的开启, 降低程序性能
    2. 线程越多CPU开销越大
    3. 线程越多, 设计越复杂, 线程间通信越复杂

    问题4: NSThread / NSOperation / GCD 优缺点

    NSThread:

    优点:
    • 轻量级低, 使用简单
    • 面向对象, 可直接操作线程对象
    缺点
    • 需要自己管理线程生命周期, 线程同步

    GCD

    GCD底层C语言实现

    优点:
    • 自动管理线程线程的生命周期(线程创建、线程调度、线程销毁)
    • 充分使用设备多核CPU并行运算
    缺点
    • 无法取消加入队列中的任务
    • 队列任务执行顺序先进先出, 随意调配比较繁琐
    • 不支持KVO监听
    • 不能设置最大并发数

    NSOperation

    NSOperration基于cocoa框架实现, 相当于基于GCD上面封装的, NSOperationQueue是高级的dispatch_queue_t

    优点:
    • 实现多线程更加面向对象, 代码简洁
    • NSOperration可以通过KVO监控操作进行的状态 (准备、执行中、完成、被取消)
    • NSOperationQueue可以设置最大并发数量 (setMaxConcurrentOperationCount:)
    • NSOperration可以很容易管理各个操作之间的依赖关系
    • NSOperration可以取消未运行任务
    缺点
    • 多核CPU上线程切换的时间比较长 效率较GCD偏低一些,

    相关文章

      网友评论

        本文标题:IOS面试题(多线程) --- 多线程基础

        本文链接:https://www.haomeiwen.com/subject/wxgdmltx.html