原创 一個C/C++協程庫的思考與實現之協程的簡單調度

https://github.com/DoasIsay/ToyCoroutine   提供這樣的協程使用接口,實在令人,,,   0.0.1代碼的accept協程只能寫的這樣醜陋,因爲協程創建後立馬調度執行佔用了CPU,只有當協程讀寫網

原创 併發編程的嘗試之volatile的困惑

去年在使用C++實現一個線程安全的HashMap時,當我實現了HashMap,準備引入鎖時,面對這麼多共享的變量,我竟一時不知那些變量該使用volatile去聲明,volatile一個在我大學畢業前就自認爲搞的爛透的一個概念,當有人問我v

原创 Linux內核源碼流水筆記之進程的調度運行

Linux內核源碼流水導讀之進程的調度運行 基於linux.2.0 源碼 內核通過schedule函數完成進程的任務調度通過switch_to宏完成進程切換 do_bottom_half();run_task_queue(&tq_sche

原创 C++基本類型-變量在可執行文件中的存放位置及初始化時機

C++基本類型-變量在可執行文件中的存放位置及初始化時機   環境如下   如下代碼     使用objdump -D -C反彙編-D會輸出所有段,-C可以輸出變量名   rodata 只讀數據段   只讀數據段中存放了 全局字符串

原创 Linux內核源碼流水筆記之進程的創建

Linux內核源碼流水筆記之進程的創建 基於linux.2.0 源碼 內核通進調用do_fork(clone_flags, newsp, &regs);創建一個進程 參數clone_flags表明了子進程要與父進程共享的資源,參數stru

原创 你知不知Java如何解析C++通過tcp socket傳過來的結構體啊

你:知不知Java如何解析C++通過tcp socket傳過來的結構體啊 我:知不知? 不久前,接到一個任務,使用Java寫一個flume的TcpSource做爲服務端,用於接收C++客戶端程序發送的未序列化的C++結構體並解析成

原创 基於共享內存的HashMap的思考

    基於mmap共享內存實現既可用於多進程又可用於多線程的無需持久化的併發HashMap,我們就叫它SharedHashMap吧!   基於mmap共享內存實現既可用於多進程又可用於多線程的無需持久化的併發SharedHashMap

原创 誤人子弟篇之C++爲什麼對引用變量取地址得到的是被引用變量的地址

C++引用  編輯 同義詞 @#Protect@#一般指C++引用 引用引入了對象的一個同義詞。定義引用的表示方法與定義指針相似,只是用&代替了*。引用(reference)是c++對c語言的重要擴充。引用就是某一變量(目標)的一個別名,

原创 關於java線程狀態的一點小小的疑惑

  事情是這樣了,一個月黑風高的晚上,窗外的冷空氣是那麼的可口解渴,讓人沉浸地無法自拔,人們都沉沉的睡去了,它正貪婪地,,,,突然,,,, 我這kafka不消費數據,是這個問題引起的?看着不像,正說着發來了線程堆棧 看着不像kafkaC

原创 linux任務的幾種狀態

linux任務的幾種狀態     而我們用ps,top看到的線程狀態還需要轉一下   R:任務正在CPU上運行,或已獲取除CPU外所有的資源,正在等待調度運行   當linux任務無法獲取所需資源時,如通過軟中斷陷入內核態調用會引起阻

原创 C++複雜類型-對象及虛函數表在可執行文件的存放位置與初始化時機

C++複雜類型-對象及虛函數表在可執行文件的存放位置與初始化時機   使用objdump -D -C反彙編-D會輸出所有段,-C可以看到代碼中的變量名   rodata 只讀數據段     可看到只讀數據段中有虛函數表(虛函數表的第一

原创 一條debug日誌引發的性能問題排查

又到周天了啊!每次到周天都會有問題啊啊啊!加班,加班,呃呃呃,本來已經想好了,這個周天,紅燒老鱉,搞點豆瓣醬爆出紅油,再來點青紅二荊條什麼的,最後撒上蔥花香菜,哇!肯定好看又好吃。但是,XXX啊這個問題你要解決啊,下週大家都等着用數據。。

原创 如何使一個正在運行的進程慢下來?哦,不,是暫停

sleep? renice? ionice? cpulimit? 連着上了兩週班,搞的悶了一臉痘,右下巴起了個大包,現在還沒好,我是誰?爲了誰?爲了兄弟姐妹不流淚?誰最美?誰最美? 那個週六還是我生日啊,我加班到了23點,在路邊吃

原创 網絡問題的排查解決

一條很有用的命令解決tcp數據發送積壓問題netstat -anpt|grep 2181|awk ‘{if($2!=0||$3!=0) print $0}’   以kafka爲例:開源kafka默認配置的據傳輸端口是2181,kafka

原创 用戶空間自旋鎖實現的思考

我頓悟,不論這個結論是否正確,我還是要以它爲指導思想來寫點代碼,因爲我真的想寫點併發場景下的東西來驗證我這七年來對編程及操作系統的思考 於是我又重啓了去年六七月分停止的併發編程大業,打開了虛擬機,重啓了烏班圖,準備大幹一場 可是啊!原本以