原创 C++的NULL和nullptr

NULL引渡自C語言,一般由宏定義實現,而nullptr則是C++11的新增關鍵字。在C語言中,NULL被定義爲(void*)0,而在C++語言中,NULL則被定義爲整數0,編譯器一般對其實際定義如下:#ifdef __cplusplus

原创 自旋鎖(spin lock)與互斥鎖(mutex)的比較

自旋鎖是一種非阻塞鎖,也就是說,如果某線程需要獲取自旋鎖,但該鎖已經被其他線程佔用時,該線程不會被掛起,而是在不斷的消耗CPU的時間,不停的試圖獲取自旋鎖。互斥量是阻塞鎖,當某線程無法獲取互斥量時,該線程會被直接掛起,該線程不再消耗CPU

原创 關於Elasticsearch6.2.4遇到的問題

環境:Ubuntu14.04 32bit安裝elasticsearch 6.2.4後新建索引時:curl -X PUT 'localhost:9200/accounts' -d ' { "mappings": { "perso

原创 select函數,poll函數,epoll函數

IO多路複用之select總結1. 基本概念2. select函數3、測試程序IO多路複用之poll 總結poll函數的事件標誌符值TCP三次握手,四次揮手講的比較好的socket中的函數listen解釋IO多路複用之epoll總結1、基

原创 select和epoll 原理概述&優缺點比較

這個問題在面試跟網絡編程相關的崗位的時候基本都會被問到,剛剛看到一個很好的比喻:就像收本子的班長,以前得一個個學生地去問有沒有本子,如果沒有,它還得等待一段時間而後又繼續問,現在好了,只走一次,如果沒有本子,班長就告訴大家去那裏交本子,當

原创 gdb調試技巧

1、按結構體格式打印set print pretty on2.檢測點watch //爲表達式(變量)expr設置一個觀察點。一量表達式值有變化時,馬上停住程序。rwatch //當表達式(變量)expr被讀時,停住程序。awatch //

原创 1、(topK問題)海量日誌數據,提取出某日訪問百度次數最多的10個IP。

首先是這一天,並且是訪問百度的日誌中的IP取出來,逐個寫入到一個大文件中。注意到IP是32位的,最多有個2^32個IP。同樣可以採用映射的方法,比如模1000,把整個大文件映射爲1000個小文件,再找出每個小文件中出現頻率最大的IP(可以

原创 關於SpinLock的更深入理解

0 前言         之前轉載過一篇闡述spin_lock的博文,但始終理解不深入,記憶不深刻。今天,花了半天閱讀完LDD3的相關章節,有種頓悟的感覺,遂簡要記下自己的理解。Btw,LDD3真心是字字珠璣,沒有半句廢話,而且從這邊書可

原创 C++的運算符重載

  C++中預定義的運算符的操作對象只能是基本數據類型。但實際上,對於許多用戶自定義類型(例如類),也需要類似的運算操作。這時就必須在C++中重新定義這些運算符,賦予已有運算符新的功能,使它能夠用於特定類型執行特定的操作。運算符重載的實質

原创 從點線面體談開發到架構師的轉型

作者:李豔鵬,現任螞蟻金服高級技術專家,著有《分佈式服務架構:原理、設計與實戰》和《可伸縮服務架構:框架與中間件》,曾經在易寶支付、花旗銀行、甲骨文、新浪微博、路透社等大型IT互聯網公司擔任技術負責人和首席架構師的工作,現專注於區塊鏈平臺

原创 redis集羣重新分片(reshard)故障處理(基於redis-4.0.9版本)

按照教程中創建集羣方式創建集羣:./src/redis-trib.rb create --replicas 1 192.168.2.106:8001 192.168.2.106:8002 192.168.2.106:8003 192.16

原创 NLP系列(2)_用樸素貝葉斯進行文本分類(上)

作者:龍心塵 && 寒小陽時間:2016年1月。出處:http://blog.csdn.net/longxinchen_ml/article/details/50597149http://blog.csdn.net/han_xiaoyan

原创 C++ 工廠模式的總結

工廠模式分爲3種,即簡單工廠模式、工廠方法模式、抽象工廠模式,其實大同小異,總結下來就是:簡單工廠模式:一個工廠,多個產品。產品需要有一個虛基類。通過傳入參數,生成具體產品對象,並利用基類指針指向此對象。通過工廠獲取此虛基類指針,通過運行

原创 redis源碼分析1--如何進入待處理的命令

函數調用關係:以set命令爲例。main-->aeMain-->aeProcessEvents-->processInputBuffer-->processCommand-->call-->setCommand其中,在processCom

原创 Ubuntu14.04 elasticsearch 安裝配置

一、環境OS:Ubuntu14.04虛擬機1核1G內存java:1.8elasticsearch-6.2.4二、安裝wget https://artifacts.elastic.co/downloads/elasticsearch/ela