美文网首页
iOS 多线程问题1-同步枷锁(@ynchronized)

iOS 多线程问题1-同步枷锁(@ynchronized)

作者: 男人宫 | 来源:发表于2020-04-17 09:07 被阅读0次
  • 我们知道,当开启多条线程时,cpu调用时是在各个线程间切换执行
    如:线程1,线程2,线程3.当线程创建时加载到内存,以及放到线程调用池中等待调用,cpu要调用哪条线程也是不确定的,当CPU在线程中切换调用时,它会把当前线程执行到的位置以及变量的值存储在内中,以便下次从该位置继续执行.从而引发一个问题当线程间访问一个全局变量时,如访问一个全局变量进行读写操作时a = a + 1.这时候就会造成读写错误.想要解决这样的问题,就要枷锁,保证哪个线程要执行这个操作,别的线程无法再进来,等待这个线程执行完,别的线程才可以进行.这样就保证了读写的同步进行.但同步枷锁(互斥锁)也会造成线程等待的现象,会造成执行效率变慢,所以同步枷锁应该尽量锁的代码越少越好.
  • 关于OC的原子属性(namotic)和非原子属性(nonamotic)
    原子属性是线程安全的,它会内部自动枷锁(自旋锁),保证数据的读或写的安全.但要注意的是,它只能保证读的安全和写的安全,但不能保证同时进行读写的安全,如a=a+1,此时数据还是出现错误

几乎所有UIKit提供的类都是线程不安全的,所以更新UI的操作要放在主线程中进行.
以及所有包含Mutable的类.如MutableArray,Mutabledictionary...

相关文章

  • iOS 多线程问题1-同步枷锁(@ynchronized)

    我们知道,当开启多条线程时,cpu调用时是在各个线程间切换执行如:线程1,线程2,线程3.当线程创建时加载到内存,...

  • 起底多线程同步锁(iOS)

    起底多线程同步锁(iOS) 起底多线程同步锁(iOS)

  • iOS 多线程基础

    转自:iOS 多线程基础 - 简书 多线程同步和异步的区别?IOS中如何实现多线程的同步? 异步:可以同时执行多条...

  • iOS复习之多线程

    关于iOS多线程,你看我就够了iOS多线程--彻底学会多线程使用dispatch_group来进行线程同步 iOS...

  • 细数iOS中的线程同步方案(一)

    细数iOS中的线程同步方案(一)细数iOS中的线程同步方案(二) 多线程安全问题 多个线程可能访问同一块资源,比如...

  • iOS中的锁

    起底多线程同步锁(iOS) OSSpinLock NSLock NSRecursiveLock 同步 NSCond...

  • OC--各种线程锁

    参考:正确使用多线程同步锁@synchronized()iOS中的锁iOS多线程安全详解iOS 常见知识点(三):...

  • iOS多线程同步问题

    当我们进行多个请求,需要所有的请求完成后发出个通知的情况下(以多个网络请求为例),有两种处理方法:1、通过添加标识...

  • iOS_2016最新版面试题(附答案)

    每天四道题,让精彩填满生活... 1、多线程同步和异步的区别。iOS如何实现多线程的同步? 答:同步就是指一个线程...

  • 线程锁

    探讨iOS开发中各种锁使用NSCondition实现多线程同步 NSCondition是线程同步, 阻塞线程。 取...

网友评论

      本文标题:iOS 多线程问题1-同步枷锁(@ynchronized)

      本文链接:https://www.haomeiwen.com/subject/pfisvhtx.html