导致 iOS 主线程阻塞从而引发卡顿的原因主要包括:
- 繁重的 UI 渲染:复杂视图层级、大量图文混排导致单次刷新周期内无法完成布局与绘制。
- 主线程同步网络请求:在主线程发起同步网络调用,必须等待响应返回,期间无法响应交互。
- 大量文件读写(I/O):在主线程读写数据库或本地文件,受磁盘速度限制耗时严重。
- 高负荷计算任务:复杂算法或大数据量处理直接放在主线程,长时间占用 CPU。
- 线程锁使用不当:主线程等待其他线程释放锁,等待时间过长甚至发生死锁导致彻底无响应。
这些问题往往具有偶发性和环境依赖性,传统线下调试难以发现,需要专门的卡顿监控手段。




