iOS中的多线程(多线程在开发中的应用)

1,106 阅读2分钟

「这是我参与11月更文挑战的第3天,活动详情查看:2021最后一次更文挑战

多线程在开发中的应用

什么是主线程

一个iOS程序运行后,默认会开启的一条线程,称为:主线程或UI线程

主线程作用

  • 显示、刷新界面
  • 处理UI事件,比如点击事件、滚动事件、拖拽事件等等

主线程使用注意

  • 不要把耗时的操作放在主线程中

  • 耗时的操作会卡住主线程,严重影响流畅度

    如果把耗时操作放在主线程里,当用户在第5秒时点击按钮时,因为线程里的操作必须是串行的,此时的这个点击事件会排在10秒耗时操作之后,直到10秒的耗时操作结束后,才能执行按钮点击事件,这样就会造成UI卡住的现象,如下图:

    Snip20211102_16.png

    如果把耗时操作放在子线程里,此刻,主线程和子线程同事进行,当用户在第5秒时点击按钮时,子线程做耗时操作,主线程响应界面操作,所以这样就不会造成UI卡住的现象,所有要把耗时操作放在子线程后台线程中,如图:

    Snip20211102_18.png


多线程的实现方案

技术方案简介语言线程生命周期使用频率
Pthread一套通用的多线程API,适用于Unix、Linux、Windown等系统。
跨平台、可移植、使用难度大
C语言程序员管理几乎不用
NSThread使用更加面向对象。
简单易用,可直接操作线程对象
Object-C 语言程序员管理偶尔使用
GCD旨在代替NSThread等线程技术
充分利用设备的多核
C语言自动管理经常使用
NSOperation基于GCD(底层是GCD),比GCD多了一些更加简单实用的功能,使用更加面向对象Object-C 语言自动管理经常使用