@synchronized
1.@synchronized(obj),obj的retainCount不会增加。
2.@synchronized(obj),会为代码添加隐藏的异常处理。
3.@synchronized(obj),代码段中出现obj=nil,不会影响其他线程执行,但是会影响线程同步。
4.@synchronized(obj),会变成objc_sync_enter 和 objc_sync_exit的成对调用。
参考文章:http://www.cocoachina.com/ios/20151103/14007.html