原创 notify_one與notify_all的區別以及虛假喚醒(spurious wakeup)

notify_all對應linux下的pthread_cond_broadcast:通常表明狀態變化,比如某一主線程的任務完成,通知其餘子線程開始執行。會使得所有wait在條件變量上的子線程去競爭鎖。因爲wait()會原子地unlockm

原创 分佈式哈希算法

一,普通的Hash方式 在介紹分佈式哈希算法之前,先了解下普通的Hash是如何實現的。JDK中的java.util.HashMap類就實現了一個哈希表,它的特點有:①創建哈希表(HashMap)需要先指定大小,即默認創建一個能夠

原创 NDK編譯native程序(二)構建原生組件

接上一篇NDK編譯native程序(一),ANT使用的build.xml指定了使用ndk-build來構建native so。 <exec executable="/opt/android-ndk-r15c/ndk-build" dir

原创 performance調查要點(持續更新)

線程優先級 CPU佔用率,使用top

原创 使用vector存放pair對象

閱讀陳碩的《Linux多線程服務端編程》中以shared_ptr實現讀寫鎖一節中,使用了map<string, vector<pair<string, int>>>。一般關聯對象都會放在map或者hash_map中,這樣做是爲了查詢速度快

原创 NDK編譯native程序(一)構建Java應用程序

Android原生開發包(NDK)是Android軟件開發包(SDK)的相關工具集,用於Android平臺上C++平臺上的開發。使得開發人員能夠使用機器代碼生成的編程語言(C、C++、彙編)實現一些對代碼性能要求較高的的模塊並將其嵌入到A

原创 使用adb devices命令,老是報error:device offline的錯誤

剛開始報error:devices not found 重新安裝adb 驅動。 解決方法: adb kill-server adb start-server adb remount 再使用adb devices和adb

原创 UNICODE和UTF-8的相互轉換(C++)

最近工作需要在xml node的節點中加入一些Unicode編碼的某些國家的字符,比如“Alte Poststraße”,最後把xml node變成字符串傳送給HMI。 爲了圖方便(想象中的方便),心想這樣一個字符串用項目中所用的Tiny

原创 Java protected與默認權限的區別

作用域   當前類    同package   子孫類 其他package  public √   √  √ √  protected √ √ √ ×  friendly(default) √ √ × ×  private √ × × ×

原创 JNI應用筆記(陸續更新)

實例引用,與一個數組和java.lang.Object類或它的子類的實例對應: jobject 類引用,與java.lang.Class實例對應,它代表着類的類型: jclass 通過對象實例獲取類(以實例引用獲得類引用): jo

原创 將XML node轉爲字符串(C++)

想得到這麼一個字符串: <vtml_phoneme alphabet="x-ntsampa" lang="GER" ph="'?al|t@ 'pOst|Stra:|s@">Alte PoststraÃe</vtml_phoneme> 看

原创 C++map key不存在

原文鏈接:http://www.cnblogs.com/nzbbody/p/3409298.html C++ map注意事項 1、在map中,由key查找value時,首先要判斷ma

原创 git rebase -i 中edit和fixup的簡單使用

原文鏈接:https://blog.csdn.net/not_say/article/details/82180129 一、edit的使用 1、當在某個分支上面存在多個commit,但

原创 幾個C庫string函數及其注意事項

這些函數都必須 #include <string.h> 這周突然和C庫string處理函數槓上了。說這個不是沒有原因,其一是公司項目要求提升I/O的performance,原先使用C++的getline每次讀取一個6M的文件直到讀完爲止,

原创 Can't load IA 32-bit .dll on a AMD 64-bit platform錯誤的解決

經提醒該軟件需要JDK 32bit。 我安裝jdk1.8.0_131以及jre1.8.0_131,並且設置了環境變量java_home和jre_home。然後在cmd鍵入java -version依然顯示老版本64 bit。 原來本機已安