摘要: Rust的内存管理中涉及所有权、借用与生命周期这三个概念,下面是个人的一点粗浅理解。 一、从内存安全的角度理解Rust中的所有权、借用、生命周期 要理解这三个概念,你首要想的是这么做的出发点是什么——内存安全,这是Rust非常强调的一点。可以这么理解,所有权、借用与生命周期很大程度上是为内存安全而设 阅读全文
posted @ 2019-07-30 13:00 让我思考一下 阅读(651) 评论(0) 推荐(0) 编辑
摘要: Linux 内核有个机制叫OOM killer(Out Of Memory killer),该机制会监控那些占用内存过大,尤其是瞬间占用内存很快的进程,然后防止内存耗尽而自动把该进程杀掉。内核检测到系统内存不足、挑选并杀掉某个进程的过程。 阅读全文
posted @ 2019-07-30 12:50 让我思考一下 阅读(2350) 评论(0) 推荐(0) 编辑
摘要: 一、认识信号 信号(Signals)是Unix、类Unix以及其他POSIX兼容的操作系统中进程间通讯的一种有限制的方式。它是一种异步的通知机制,用来提醒进程一个事件已经发生。当一个信号发送给一个进程,操作系统中断了进程正常的控制流程,此时,任何非原子操作都将被中断。如果进程定义了信号的处理函数,那 阅读全文
posted @ 2019-07-29 15:57 让我思考一下 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 一、基本思路 日志库的设计,抓住最核心的一条,就是日志从产生到到达最终目的地期间的处理流程。 一般而言,为了设计一个灵活可扩展,可配置的日志库,可将日志库抽象为4个部分:记录器、过滤器、格式化器、输出器四部分。 记录器——负责产生日志记录的原始信息,比如(原始信息,日志等级,时间,记录的位置)等信息 阅读全文
posted @ 2019-07-26 11:21 让我思考一下 阅读(2163) 评论(0) 推荐(0) 编辑
摘要: 多线程编程可以说每个程序员的基本功,同时也是开发中的难点之一,本文以Linux C为例,讲述了线程的创建及常用的几种线程同步的方式,最后对多线程编程进行了总结与思考并给出代码示例。 一、创建线程 多线程编程的第一步,创建线程。创建线程其实是增加了一个控制流程,使得同一进程中存在多个控制流程并发或者并 阅读全文
posted @ 2019-07-25 16:13 让我思考一下 阅读(22580) 评论(0) 推荐(2) 编辑