美文网首页
单利模式添加互斥锁

单利模式添加互斥锁

作者: 哈利路亚biubiu | 来源:发表于2020-03-11 17:09 被阅读0次

单例模式不适合使用继承实现的原因
static id _instance;在整个内存中只有一份,所以会导致一下错误,用代码说明一下:
// 比如有一个基类
YHSingelton
// YHPerson继承于YHSingelton
YHPerson : YHSingelton
// YHCar也继承于YHSingelton
YHCar : YHSingelton
// 打印出来的都是YHPerson对象
// 因为static id _instance;在整个内存中只有一份
NSLog(@"%@---%@", [YHPerson sharedInstance], [[YHCar sharedInstance]);
也可以通过互斥锁的方式实现单例模式,但是没有必要,用GCD就很好了,这里只重写allocWithZone:方法简单演示一下

// 著名的双锁技术

  • (instancetype)allocWithZone:(struct _NSZone *)zone
    {
    if (_instance == nil)
    {
    @synchronized(self)
    {
    if(_instance == nil)
    {
    _instance = [super allocWithZone:zone];
    }
    }
    }
    return _instance;
    }

相关文章

  • 单利模式添加互斥锁

    单例模式不适合使用继承实现的原因static id _instance;在整个内存中只有一份,所以会导致一下错误,...

  • 单利模式添加互斥锁

    单例模式不适合使用继承实现的原因 static id _instance;在整个内存中只有一份,所以会导致一下错误...

  • 2018-05-14

    单利设计模式 懒汉式 单例模式 饿汉式 单利模式 懒汉式与饿汉式的区别: 双重锁式 单例模式 (DCL )

  • 线程同步与互斥

    Linux--线程编程 多线程编程-互斥锁 线程同步与互斥 互斥锁 信号量 条件变量 互斥锁 互斥锁的基本使用...

  • Golang 锁的相关知识

    Golang锁分类:互斥锁(Mutex)、读写锁(RWMutex)。 互斥锁 在编写代码中引入了对象互斥锁的概念,...

  • iOS底层探索-多线程锁

    多线程的锁大致可分为两大类:互斥锁、自旋锁;也可以分为三类:互斥锁、自旋锁、读写锁。 一、互斥锁:互斥+同步(强调...

  • go-锁机制

    Golang中的锁机制主要包含互斥锁和读写锁 互斥锁 互斥锁是一种简单的加锁的方法来控制对共享资源的访问,互斥锁只...

  • 线程锁

    1.常见的锁包括:互斥锁,自旋锁。 2.互斥锁是指锁的类型,自旋锁是指锁的实现方式。 3.互斥锁:当上...

  • 算法:读写者问题

    锁解析 : RWMutex : 读-写互斥锁 WWMutex : 写-写互斥锁 WPriorityMutex =...

  • 可重入读写锁 ReentrantReadWriteLock

    读写锁分为读锁和写锁,多个线程获取读锁不互斥,读写锁、写写锁互斥。 输出

网友评论

      本文标题:单利模式添加互斥锁

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