12 2021 档案
摘要:概述 freeswitch的核心源代码是基于apr库开发的,在不同的系统上有很好的移植性。 APR库在之前的文章中已经介绍过了,APR-UTIL库是和APR并列的工具库,它们都是由APACHE开源出来的跨平台可移植库,不同点在于库中实现的功能接口有区别。 在应用的开发过程中,多线程并发是提高效率的常
阅读全文
摘要:概述 freeswitch的核心源代码是基于apr库开发的,在不同的系统上有很好的移植性。 APR库在之前的文章中已经介绍过了,APR-UTIL库是和APR并列的工具库,它们都是由APACHE开源出来的跨平台可移植库,不同点在于库中实现的功能接口有区别。 在应用的开发过程中,模块内部的消息传递是经常
阅读全文
摘要:概述 VOIP服务器中,对于一通呼叫的管理一定会涉及到呼叫状态的变化,包括初始化、呼叫发起、振铃、接通、结束等各种状态。 呼叫业务流程为了管理呼叫状态的变化,就要用到有限状态机这一概念。 最简单的状态机实现,就是if-else或者switch分支方法。 当状态机的状态变化比较简单明了时,条件分支的写
阅读全文
摘要:概述 freeswitch的核心源代码是基于apr库开发的,在不同的系统上有很好的移植性。 线程读写锁在多线程服务中有重要的作用。对于读数据比写数据频繁的服务,用读写锁代替互斥锁可以提高效率。 由于APR库是跨平台的,而不同平台上的系统接口有区别,所以在APR库中就有一个适配层目录libs\apr\
阅读全文
摘要:概述 freeswitch的核心源代码是基于apr库开发的,在不同的系统上有很好的移植性。 哈希表在开发中应用的非常广泛,主要场景是对查询效率要求较高的逻辑,是典型的空间换时间的数据结构实现。 大多数的底层库有各自的哈希表实现方法,那么apr库中对于哈希表究竟是如何实现的呢,其中有什么优点和缺点?
阅读全文