美文网首页
底层20:多线程-GNUstep、队列组的使用、多线程的安全隐患

底层20:多线程-GNUstep、队列组的使用、多线程的安全隐患

作者: 张无奈 | 来源:发表于2020-09-08 11:00 被阅读0次

    GNUstep:是GNU计划(就是开源很多项目的计划)的项目之一,它将Cocoa的OC库重新开源实现了一遍。

    源码地址:http://www.gnustep.org/resources/download.php

    虽然GNUstep不是苹果官方的源码,但还是具有一定的参考价值。

    队列组的使用:

    问题:异步并发执行任务1、任务2,等任务1、2完成以后,再回到主线程执行任务3

    多线程的安全隐患

    资源共享:1块资源可能会被多个线程共享,也就是说多个线程可能会访问同一块资源

    比如多个线程访问同一个对象、同一个变量、同一个文件

    当多个线程访问同一块资源,很容易引发数据错乱和数据安全问题。

    示例1:存钱取钱

    代码如下:

    示例2:卖票

    代码如下:

    线程安全分析:

    多线程安全隐患解决方案:

    解决方案:使用线程同步技术(同步,就是协同步调,按预定的先后次序进行运行)

    常见的线程同步技术:加锁


    具体锁的使用查看:底层21:多线程-锁

    相关文章

      网友评论

          本文标题:底层20:多线程-GNUstep、队列组的使用、多线程的安全隐患

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