初识Docker之安装Docker CE

本Docker系列文章的大部分内容来自Docker官方文档[1],本人在此基础之上加以总结并记录于此,如有错误,请留言指正。在深入介绍Docker相关特性之前,我们需要知道什么是Docker,如何安装Docker以及如何卸载Docker等预备知识。
继续阅读“初识Docker之安装Docker CE”

Protocol Buffer使用指南之C++实例

我们知道Protocol Buffer有一个重要的特性——跨语言,它支持C++,Python,Java等多种语言。本文围绕着C++语言实例来往下展开,主要介绍以下几点:如何在.proto文件中定义message类型,如何使用protoc编译器,如何使用Protobuf提供的C++ API去读/写数据。
继续阅读“Protocol Buffer使用指南之C++实例”

初识Protocol Buffer

本文以及后续Protobuf系列的文章内容主要来源Google的官方开发文档[1]。本人只是对其进行了总结并记录于此。同时,文章的内容不会对官方文档进行逐行的翻译,有些内容会选择性跳过,有些内容会添加自己的一些理解。因个人水平有限,如有错误,还请留言指正。
继续阅读“初识Protocol Buffer”

cJSON库使用小结

JSON(JavaScript Object Notation)[1]是一种轻量级的数据交换格式。它采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
继续阅读“cJSON库使用小结”

浅析Linux线程池及其实现

         许多服务器应用程序,如Web服务器,数据库服务器等都面临着处理众多客户端发起的请求,这些请求往往都是短暂的、大量的。如果采用为每个到达的请求创建一个新线程来响应客户端请求的话,至少存在以下两个缺点:
继续阅读“浅析Linux线程池及其实现”

Linux线程的连接和分离

我们知道,对多进程的程序而言。如果子进程结束后父进程还未结束,那么该子进程将会处于僵尸状态,我们称之为“僵进程”。对于僵进程,直到父进程调用wait()或waitpid()函数后,僵进程的状态才会被解除,此时子进程的资源才得以释放。
继续阅读“Linux线程的连接和分离”