程序员 一次子进程继承信号屏蔽字导致的功能异常问题排查过程 近来一直在做部门疑难问题的排查工作,最近也准备在周分享上做一个小培训(交流)——“排查问题的方法和思路”。回想历史问题处理,觉得这是个很不错的案例,便回溯了一下排查过程记录下来。 一、问题背景 有一个... 03月08日评论 阅读全文
C/C++ C++中的异常处理 一、异常处理 1.1 异常的基本用法 C语言中因为没有异常处理(只能通过返回值来判断错误)机制一直被诟病,因此C++也引入了try...catch机制,使得C++也能像java/python一样来捕获... 03月01日评论 阅读全文
编程语言 I/O模型 一、I/O模型分类 unix环境下有5中IO模型: 阻塞式I/O 非阻塞式I/O I/O多路复用 信号驱动I/O 异步I/O(POSIX中的aio_系列函数) 常用的是前三种方式,特别是多路I/O复用... 02月29日评论 阅读全文
数据结构和算法 [leetcode]226-翻转二叉树 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/invert-binary-tree 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请... 02月26日评论 阅读全文
C/C++ epoll中的边缘触发ET和水平触发LT模式 epoll中的触发模式有两种,边缘触发和水平触发,默认情况下使用的是水平触发。 边缘触发(ET)的意思是当电平出现变化的时候才触发事件,如果设置了边缘触发,执行epoll_wait时,内核检测到数据到... 02月26日评论 阅读全文
C/C++ 猴子拿苹果问题-匿名信号量 一、猴子拿苹果问题 逛脉脉时,看到一网友遇到的面试题:有9个苹果,2只猴子。一个猴子每次拿2个苹果,一个猴子每次拿3个苹果。如果剩余的苹果数量不够猴子拿的数量,则停止拿苹果。请用多线程的方式模拟上面的... 02月25日评论 阅读全文
C/C++ 进程间通信之共享内存 共享内存是所有IPC通信中效率最高的,它通过把文件映射到用户进程空间,然后直接通过地址访问来实现多进程通信。相对于其他IPC通信方式而言,少去了把数据从用户空间复制到内核空间,再从内核空间复制到用户空... 02月23日评论 阅读全文
编程语言 进程间通信之信号量 一、信号量 信号量有两种,一种的有名信号,一种是无名信号。有名信号一般用于进程间同步,无名信号一般用于于线程间同步。创建或打开一个信号的函数: name参数致命信号量的名字,由于信号量内部保存在系统内... 02月23日评论 阅读全文
C/C++ EAGAIN和EWOULDBLOCK的处理办法 EAGAIN和EWOULDBLOCK是linux环境下的两个错误码,在非阻塞IO中经常会碰到,对新手而言,如何处理这两个值非常头疼。如果处理不当,很容易导致程序异常。 EAGAIN的官方定义: “Re... 02月20日评论 阅读全文