美文网首页
ios 中单例的创建

ios 中单例的创建

作者: helinyu | 来源:发表于2017-07-31 23:04 被阅读6次
    创建单例的集中方式

    shareO: 非线程安全,因为如果两个线程同时访问,就不是创建一个了。
    share1: 线程安全,加入了同步锁,线程安全,当时过程都是串行运行的的,并且同步锁消耗额外的资源;
    share2: 线程安全,这个比share1性能搞了点,使用了两个if判断,但是代码复杂;
    shared : 线程安全,最优的写法;
    一个token和block代码块,这个函数必然会执行的,且线程安全;
    常常: 对于只需要执行一次的块来说,每次调用函数时,传入的标记都必须完全相同。因此开发者通常标记变量声明在static 或者gloabal作用域;线程安全是由GCD底部完成的;
    由于每次调用时,都必须使用完全相同的标记,所以标记要声明成static。这样在复用的时候都会用这个变量而不是新的;dispatch_once 这个方法不用加锁,函数采用了原子访问(atomic access)来查询标记,以判断其所对应的代码原来是否执行过。

    相关文章

      网友评论

          本文标题:ios 中单例的创建

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