explorer

万丈高楼平地起,勿在浮沙筑高台

0%

接触 c++ 有段时间了,但是学习它却是东一榔头西一棒子……

粗略的看过 ,也看过很多博客总结,虽然平时用 Qt 做做小工具,但由于没有静下心来好好学习,我认为自己对 c++ 还没有入门。

目前从事嵌入式行业,虽然说工作中基本上还是用 c,但 c++ 那面向对象的语法、函数重载、引用变量、string、vector 等等总是在那散发着光芒吸引着我。

很明显,虽然 c++ 很多高级特性的语法很复杂,但如果仅使用它的基本特性来完成嵌入式 Linux 的应用程序开发,其效率绝对会比 c 高太多。

况且连 c++ 基础都不扎实,也不好意思说自己会用得好 Qt 吧?

所以我决定重新来系统性的学习一下 c++ 这门工业化语言,先从 开始,然后过渡到 等等。

这是一个重新复习 c 语言到过渡到 c++ 的好机会,当然这也是一个漫长的过程。

倘若我将所有的业余时间拿来学 c++,那么其他需要学习的知识就会处于一个长时间被阻塞的状态,这明显是很不合适的。

所以我要为它单独开一个低优先级的线程,每天拿出一点时间来学学。同样是通过长时间的积累来达到熟练运用的水平。

那么我现在开始吧……

Last Updated 2020-06-28 Sun 11:59.
Render by hexo-renderer-org with Emacs 26.3 (Org mode 9.3.7)

Linux 服务器程序必须处理 I/O 事件、信号、定时这 3 类事件,在处理时需要考虑如下 3 个问题:

  • 统一事件源:尽量统一的处理这 3 类事件,既能使得代码简单易懂,也能避免逻辑错误。
    • 前面使用 I/O 复用函数来同时处理这 3 类事件,但代码看起来不太优雅
  • 可移植性:尽量让同一份服务端代码可以应用在多种系统中
  • 对并发编程的支持:在多进程和多线程环境下,需要考虑各执行实体如何协同处理且避免竞态。

轻量级的libevent便可以很好的解决以上问题。

阅读全文 »