码迷,mamicode.com
首页 > 编程语言 > 详细

多线程下载图片,滑动tableView崩溃--资源抢夺问题

时间:2017-07-01 19:28:59      阅读:320      评论:0      收藏:0      [点我收藏+]

标签:多线程下载   otto   alt   记录   图片   名词解释   sop   block   崩溃   

最近练习使用NSoperation模拟SDWebImage下载图片,发生了崩溃的问题,还专门写博客记录这件事情: http://www.cnblogs.com/tufei7/p/7074030.html, 当时以为是因为weakSelf和StrongSelf造成的崩溃, 然而我尽管用了StrongSelf和WeakSelf仍然崩溃,当时我也很崩溃.

思前想后还是跟demo源码对比下吧,对比发现:

技术分享

demo代码 红框里面的代码是写在 mainQueue的block里面的, 我的是写在mainQueue上面也就是子线程中的.

我蒙圈了,为啥呢? 我去请教大神,大神说:"因为你对字典进行插入(也叫写)操作,如果是多线程并发执行,可能会发生资源抢夺,资源抢夺会造成死锁,死锁会造成崩溃.对字典进行读操作不会造成资源抢夺"

名词解释:资源抢夺 , 我的理解是多条线程操作同一个可变对象(这里是字典),

名词解释:死锁

问: 解决死锁有哪些方式?

答: a):

  1. @synchronized(self)  
  2.     {  
  3.         //关键代码;  
  4.     }

  b):

 

iOS多线程开发资源抢夺和线程间的通讯问题

http://www.cnblogs.com/huanying2000/p/6138573.html

多线程下载图片,滑动tableView崩溃--资源抢夺问题

标签:多线程下载   otto   alt   记录   图片   名词解释   sop   block   崩溃   

原文地址:http://www.cnblogs.com/tufei7/p/7103132.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!