美文网首页iOS面试
iOS 多线程面试题(多进程、多线程)

iOS 多线程面试题(多进程、多线程)

作者: 程序员_秃头怪 | 来源:发表于2019-08-06 20:13 被阅读10次
    多进程

    打开mac的活动监视器,可以看到很多个进程同时运行

    • 进程是程序在计算机上的一次执行活动。当你运行一个程序,你就启动了一个进程。显然,程序是死的(静态的),进程是活的(动态的)。
    • 进程可以分为系统进程和用户进程。凡是用于完成操作系统的各种功能的进程就是系统进程,它们就是处于运行状态下的操作系统本身;所有由用户启动的进程都是用户进程。进程是操作系统进行资源分配的单位。
    • 进程又被细化为线程,也就是一个进程下有多个能独立运行的更小的单位。在同一个时间里,同一个计算机系统中如果允许两个或两个以上的进程处于运行状态,这便是多进程。
    多线程
    • 1.同一时间,CPU只能处理1条线程,只有1条线程在执行。多线程并发执行,其实是CPU快速地在多条线程之间调度(切换)。如果CPU调度线程的时间足够快,就造成了多线程并发执行的假象

    • 2.如果线程非常非常多,CPU会在N多线程之间调度,消耗大量的CPU资源,每条线程被调度执行的频次会降低(线程的执行效率降低)

    • 3.多线程的优点:
      能适当提高程序的执行效率
      能适当提高资源利用率(CPU、内存利用率)

    • 4.多线程的缺点:
      开启线程需要占用一定的内存空间(默认情况下,主线程占用1M,子线程占用512KB),如果开启大量的线程,会占用大量的内存空间,降低程序的性能
      线程越多,CPU在调度线程上的开销就越大
      程序设计更加复杂:比如线程之间的通信、多线程的数据共享

    热文推荐

    2019 全网 iOS 面试题以及答案总结!

    相关文章

      网友评论

        本文标题:iOS 多线程面试题(多进程、多线程)

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