看了眼新的日志,那个问题确定了 是升级后的Crash框架中对原add、removeObserver方法进行了方法替换,而替换方法里有互斥锁操作,跨线程进行对这部分共享资源进行了lock unlock 操作,因为键盘管理框架创建的线程在load、change的时候为了防止阻塞都是创建了新线程处理,还有的设置了0.1秒的延迟调用返回主线程,如果在这期间内线程内资源被lock或unlock,就会在释放的时候导致异常。
看了眼新的日志,那个问题确定了 是升级后的Crash框架中对原add、removeObserver方法进行了方法替换,而替换方法里有互斥锁操作,跨线程进行对这部分共享资源进行了lock unlock 操作,因为键盘管理框架创建的线程在load、change的时候为了防止阻塞都是创建了新线程处理,还有的设置了0.1秒的延迟调用返回主线程,如果在这期间内线程内资源被lock或unlock,就会在释放的时候导致异常。
本文标题:互斥锁使用注意事项
本文链接:https://www.haomeiwen.com/subject/bgbatrtx.html
网友评论