zoukankan      html  css  js  c++  java
  • SDL 开发实战(七): SDL 多线程与锁机制

    为什么要用多线程?在音视频领域主要是实现音视频同步。实现了音视频同步,我们的播放器就基本上合格了。

    这里我们将讲解一下SDL的多线程与锁机制。

    多线程的好处主要是能使程序更加充分利用硬件(主要是CPU)的性能。但是也存在相应的隐患,如果多线程管理不好,会出现协调问题。

    引进的机制:线程的互斥与同步

    互斥:同一个资源在一定时间内只能由一个方法访问。

    同步:一个方法完成后的内容需要同步到其他的方法,在由其他方法操作完成后的内容。

    锁与信号量

    锁用于完成互斥;信号量用于同步。

    锁的种类:读写锁、自旋锁、可重入锁。

    SDL线程创建:SDL_CreateThread 

    SDL线程等待:SDL_WaitThead

    SDL互斥锁:SDL_CreateMutex / SDL_DestroyMutex

    SDL锁定互斥:SDL_LockMutex / SDL_UnlockMutex

    SDL 条件变量(信号量):SDL_CreateCond / SDL_DestoryCond

    SDL 条件变量(信号量)等待 / 通知 :SDL_CondWait / SDL_CondSingal

    SDL锁和条件变量使用场景:主要用于AVPacketList队列的读取控制,真正的用法需要在实际项目中进行理解和领会。

    下图是SDL开发播放器的线程模型,供大家开发和学习时参考:

       

        

  • 相关阅读:
    Xib和storyboard对比
    IOS中用模型取代字典的好处
    IOS中UIButton和UIImageView的区别
    Response对象
    ASP.NET内置对象
    ASP.NET最常用的页面生命周期事件
    构造函数与析构函数
    C#程序设计基础——类、对象、方法
    CI框架分页(不解错误)
    Linux 下直连ipad mini充电(实战)
  • 原文地址:https://www.cnblogs.com/renhui/p/10498177.html
Copyright © 2011-2022 走看看