Golang内存模型之Channel

Golang的内存模型比较复杂,同时也非常重要。理解Go的内存模型会就可以明白很多奇怪的竞态条件问题,”The Go Memory Model”的原文在这里,读个四五遍也不算多。

简单的malloc堆内存分配实现

操作系统中程序可操作的内存主要有两块,一个是栈存储空间,另一个是堆内存空间。C/C++中与后者直接挂钩的接口是malloc,大家对这个库函数都非常熟悉,需要一块堆内存时调用它。大家用了很多,但是很少去了解malloc背后堆内存分配的实际流程。坦白说,malloc只是C的标准库中提供的一个普通函数,结合ELF和操作系统原理实现malloc的基本思想并不复杂。

Unix网络编程基本概述

Unix网络编程主要需要注意socket的阻塞和非阻塞的处理,避免死锁。同时,socket属性的设置也是需要注意的基本问题。

NLSR配置及安全证书链生成

NLSR是由NDN项目组开发的路由协议,现已在Testbed上进行使用。NLSR的安装文档可以在官网上查看:传送门。基本的安装流程网站上有详细的说明,一步步安装即可。NLSR的配置主要分为两个部分,邻居路由器节点的配置及安全证书链。

C++中unordered_map如何使用pair作键值(key)

C++ STL中的unordered_map底层是通过Hash实现的,当使用pair作为键值(Key)时,需要手动传入Hash实例类型。

DFS性能优化--剪枝策略

前段时间研究了一下过必经点最短路径问题。本篇文章主要讨论一下DFS算法的性能优化及相关剪枝策略。

C++中的static与单例模式

今天我们来聊一聊C++中的static修饰符,并通过单例模式说明static的作用。

rsync容灾备份数据

服务器数据同步备份是常见的容灾需求,我的实验室一台Web服务器需要定时备份网站相关数据至备份服务器上。今天谈谈同步备份的实现。介绍中我们将待备份的Web服务器视作ClientA,存储备份数据的服务器称作ServerB

C语言中指针与数组内存分配

年末岁初,未出门远行;一个人待着,感觉应该写的什么。想起自己前不久新搭建的博客,希望自己在博客中留下学习生活的点滴,更希望自己能够坚持写下去,也算做是对自己新的一年的寄语与期盼。

CentOS7初始化设置(Initial setup of CentOS7)

CentOS一直是liunx server的稳定系统,前端时间安装新的CentOS 7,重启后一直无法进入图形界面,当然文字界面进入很正常。可能是以前给服务器装系统很少安装Gnome Or KDE 的缘故,初见这个问题时十分费解,也可能是CentOS 7的初始化设置太简陋的缘故,总之解决这个问题花费了一些精力。