iOS的线程安全与锁

一、什么是线程安全?

用人话来说:多线程操作共享数据不会出现想不到的结果就是线程安全的,否则,是线程不安全的。

举个例子:

第一个函数第一次和第二次调用的结果不一样,换句话说,不能确定代码的运行顺序和结果,是线程不安全的;第二个函数第一次和第二次输出结果一样,可以确定函数的执行结果,是线程安全的。

居于线程安全的含义,知道线程安全是相对于多线程而言的,单线程不会存在线程安全问题。因为,单线程代码的执行顺序是确定的,可以知道代码的执行结果。

二、锁锁锁

线程不安全是由于多线程访问造成的,那么如何解决?

1.既然线程安全问题是由多线程引起的,那么,最极端的可以使用单线程保证线程安全。

2.线程安全是由于多线程访问和修改共享资源而引起不可预测的结果,因此,如果都是访问共享资源而不去修改共享资源也可以保证线程安全,比如:设置只读属性的全局变量。

3.使用锁。

你可能感兴趣的:(iOS的线程安全与锁)