iOS多线程中的单例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS多线程中的单例相关的知识,希望对你有一定的参考价值。

 1 #import "MyHandle.h"
 2 
 3 static MyHandle *handle = nil;
 4 @implementation MyHandle
 5 // 传统写法
 6 // 此时如果多个任务并发执行,他就不会满足单例的优点
 7 //+ (MyHandle *)shareMyHandle {
 8 //    if (nil == handle) {
 9 //        handle = [[MyHandle alloc] init];
10 //    }
11 //    return handle;
12 //}
13 
14 // 多线程中的写法
15 + (MyHandle *)shareMyHandle {
16     // 在GCD 中保证只执行一次, 用于记录内容是否执行过
17     static dispatch_once_t onceToken;
18     dispatch_once(&onceToken, ^{
19         handle = [[MyHandle alloc] init];
20     });
21     return handle;
22 }
23 
24 @end

 

以上是关于iOS多线程中的单例的主要内容,如果未能解决你的问题,请参考以下文章

Java多线程中的单例模式

多线程 实现单例模式 ( 饿汉懒汉 ) 实现线程安全的单例模式 (双重效验锁)

多线程阻塞队列定时器线程安全的单例模式的原理及实现

多线程阻塞队列定时器线程安全的单例模式的原理及实现

多线程阻塞队列定时器线程安全的单例模式的原理及实现

片段作为 Android 中的单例