美文网首页
iOS的线程安全与锁

iOS的线程安全与锁

作者: 含笑州 | 来源:发表于2019-03-05 16:53 被阅读0次

    一、什么是线程安全?

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

    举个例子:

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

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

    二、锁锁锁

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

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

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

    3.使用锁。

    相关文章

      网友评论

          本文标题:iOS的线程安全与锁

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