Updated ZLMediaKit高并发实现原理 (markdown)

johzzy
2021-12-03 16:19:36 +08:00
parent a9ccf9a260
commit 6ac7023c33

@@ -28,7 +28,7 @@
由于C/C++是种强类型静态语言异常处理简单粗暴动不动就core dump。C/C++的设计理念就是发现错误及早暴露在某种意义上来说崩溃也是种好事因为这样会引起你的重视让你能及早发现定位并解决问题而不是把问题拖延到无法解决的时候再暴露给你。但是这么做对一般人来说C/C++就不是很友好了人类并不像机器那样严谨有点疏忽在所难免况且有些小问题也无伤大雅并不需要毁灭式的core dump来应对。而且C/C++的学习曲线异常艰难困苦,很多人好几年也不得要领,所以很多人表示纷纷弃坑,转投 go / erlang / node.js之类。
但是C/C++由于其性能优越性以及历史原因在某些场景下是不二选择而且C/C++才是真正的跨平台语言况且随着智能指针的推出内存管理不再是难题而lambad语法的支持让程序上下文绑定不再困难。随着C++新特性的支持编译器静态反射机制的完善现代C++编程愈发简便快捷。ZLMediaKit采用的就是C++11新标准以及相关理念完成的高性能流媒体服务框架。
但是C/C++由于其性能优越性以及历史原因在某些场景下是不二选择而且C/C++才是真正的跨平台语言况且随着智能指针的推出内存管理不再是难题而lambda语法的支持让程序上下文绑定不再困难。随着C++新特性的支持编译器静态反射机制的完善现代C++编程愈发简便快捷。ZLMediaKit采用的就是C++11新标准以及相关理念完成的高性能流媒体服务框架。
与上面其它编程模型不同ZLMediaKit采用的是多线程开发模型与传统的多线程模型不同ZLMediaKit采用了C++11的智能指针来做内存管理在线程切换时可以完美的管理内存在多线程下共享以及其生命周期。同时互斥锁的粒度消减至极致几乎可以忽略不计。所以采用多线程模型的ZLMediaKit性能损耗极低每条线程的性能几乎可以媲美单线程模型同时也可以充分榨干CPU的每一核心性能。