iOS线程死锁
在chat view的开发过程中,添加了“混合标签添加与显示”,app出现发送图片会出现卡死的情况,但过了大约30~40 second后会恢复正常。
问题分析:
因为没有任何报错与提示,只能根据表面现象慢慢分析,经过多次测试与观察得出以下规律:
(1)发送表情与文本不会发生该情况,只有发送图片才会发生app界面卡死的情况。(主线程阻塞,与大文件上传有关)
(2)app卡死一定时间后会恢复正常,但时间不定,大约范围在30~40 second。(主线程解除阻塞,与系统某些机制有关)
(3)当界面中有gif图时才会发生,界面中全是移动端本地图片是能顺利发送。(与gif下载有关)
根据上述现象,可以总结为:
主线程阻塞,过后因通信通信失败而阻塞解除。
因为与gif图的下载有关,于是分析gif的下载实现,gif图的下载由以下代码实现。
|