原创 vmware虛擬機擴容ubuntu磁盤空間

vmware 虛擬機磁盤不足後,嘗試進行擴容, 發現一篇比較好的文章,本人已親試,不是水文,安裝gparted可視化工具,修改相關分區即可,操作起來類似於windows一樣便捷。 原文鏈接 https://www.cnblogs.

原创 http1與http2的區別

grpc遠程調用,採用http2協議傳輸,所以簡單查看了下http1與http2的區別。 如下: http/1.x 有連接無法複用、隊頭阻塞、協議開銷大和安全因素等多個缺陷。 http/2 充分利用了多路複用、採用二進制流、

原创 C++ CJson解析json數據

字符串轉成JSON(其中str爲字符串) Json::Reader Reader; Json::Value DevJson; Reader.parse(str,DevJson); int dev_id = DevJson["dev

原创 Protocol Buffer平滑升級原則

關於Protocol Buffer優勢這裏就不詳細介紹了,如便於不同開發語言的交互通信,便於服務器上線的平滑升級等。 但Protocol Buffer的Message協議升級是需要注意一些細節,以下幾點作爲開發者需要特殊關注: 1

原创 反應器模式與生產者消費者模式的區別

關於設計模式反應器模式與生產者消費者模式的區別,首先我們要了解兩種設計模式的設計思想,具體如下: 生產者消費者模型: 這種模型的應用場景通常是多線程狀態下,其中有一個或者多個線程去生產數據,然後將對應的數據放入到一個隊列或者容器中

原创 閒談pthread_cond_wait虛假喚醒

關於多線程下條件變量的作用這裏就不多講解了,這裏主要是針對條件變量操作時需要注意一個特性虛假喚醒,首先看一段代碼。 task * _deal_task = NULL; //lock pthread_mutex_lock(&m

原创 redis C接口函數

hiredis是redis數據庫的C接口,目前只能在linux下使用,幾個基本的函數就可以操作redis數據庫了。 函數原型:redisContext *redisConnect(const char *ip, int port)

原创 docker操作指南

最近工作中是在docker容器中玩,所以對docker有一定初步的瞭解,不過這東西玩起來的確挺有意思的,很方便,總結下常用的命令。 docker ps 查看容器 docker images 查看鏡像 docker cp 拷貝 如果你在創建

原创 搜索算法之二分法

二分法是搜索算法中的最簡單算法,其另一種稱呼爲折半查找法,實際上核心思想就是對一個有序數組,進行從中間分隔,然後去中間值來進行查找,如果對應所要找的數值比中間的值大,則說明搜索的數值在數組的右側,如果小則說明在左側,二分查找最重要

原创 通過移位獲取int最大值

這裏我們按照32位系統來講: 操作符號 << 表示左移 1左移0位 二進制下就是對應的 01 十進制即1 理解爲2的0次方 1左移1位 二進制下就是對應的 10 十進制即2 理解爲2的1次方 … 1左移31位 二進

原创 cmake常用指令

CMake使用說明 Cmake常用的相對路徑的一些變量如下: 比如當前的程序工程結構如下: 頂層目錄 tcp_server 一層目錄 build/ CMakeList.txt src/ 二層目錄 build/編譯目錄

原创 linux 源碼安裝小技巧

linux下很多軟件都是源碼編譯生成,所以如何指定軟件到生成的路徑很重要。 通常我們源碼安裝需要經歷如下三步: 1 ./configure 這一步都是我們進行配置準備相關的軟件安裝需要的配置,同時會生成相應的makefile。這裏

原创 解決 error C1083: 無法打開預編譯頭文件xxx.pch: No such file or directory

原文鏈接:https://blog.csdn.net/zhoumin4576/article/details/80709246 解決辦法: 在解決方案資源管理器中: 1、在stdafx.

原创 in ?? () from /usr/lib64/libstdc++.so.6 linuxC++string 程序異常崩潰

今天跨平臺移植代碼完成以後,測試環境跑服務發現windows下正常,linux程序出現崩潰報段錯誤。 信息如下in ?? () from /usr/lib64/libstdc++.so.6。 查看了下代碼發現定義的結構體內部初始化

原创 荷蘭國旗問題解題思想

關於荷蘭國旗排序問題可以簡化理解將一個數組中的數據排序,比如給定一個buffer內部元素有N個0,1,2,buffer內部是無序的,如果要求通過一趟掃描,並且不能利用額外的空間,進行排序如何解決。 這種問題最直觀的思想就是採用多指