多线程中一次性执行和互斥锁都是我们用来保证数据安全的常用方法,下面我们使用代码来测试使用这两种方法来保证数据安全的时候哪个效率更高。
在这里我们使用这两种方法来创建单例模式,并且大次数循环创建单例对象,看创建相同次数的单例对象的时候哪种方法用的时间要少一点。
首先我们创建一个工具类。
然后在DBTool.h中声明两个创建单例的方法
在DBTool.h中实现两个创建单例的方法
接着在ViewController.m中创建单例
下面是循环创建十万次单例时两种方法的时间差
这是循环创建一千万次单例时两种方法的时间差
根据上面数据,我们可以做出判断,使用一次执行创建单例对象比使用互斥锁创建单例对象效率高。