這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
線程優先順序設定:
http://droidyue.com/blog/2015/09/05/android-process-and-thread-schedule-nice/
linux的優先順序設定:sudo renice -n 0 -p 24161
android優先順序設定:
Android中的線程優先順序別目前規定了如下,瞭解了進程優先順序與nice值的關係,那麼線程優先順序與值之間的關係也就更加容易理解。
THREAD_PRIORITY_DEFAULT,預設的線程優先順序,值為0。
THREAD_PRIORITY_LOWEST,最低的線程層級,值為19。
THREAD_PRIORITY_BACKGROUND 後台線程建議設定這個優先順序,值為10。
THREAD_PRIORITY_FOREGROUND 使用者正在互動的UI線程,代碼中無法設定該優先順序,系統會按照情況調整到該優先順序,值為-2。
THREAD_PRIORITY_DISPLAY 也是與UI互動相關的優先順序界別,但是要比THREAD_PRIORITY_FOREGROUND優先,代碼中無法設定,由系統按照情況調整,值為-4。
THREAD_PRIORITY_URGENT_DISPLAY 顯示線程的最進階別,用來處理繪製畫面和檢索輸入事件,代碼中無法設定成該優先順序。值為-8。
THREAD_PRIORITY_AUDIO 聲音線程的標準層級,代碼中無法設定為該優先順序,值為 -16。
THREAD_PRIORITY_URGENT_AUDIO 聲音線程的最進階別,優先程度較THREAD_PRIORITY_AUDIO要高。代碼中無法設定為該優先順序。值為-19。
THREAD_PRIORITY_MORE_FAVORABLE 相對THREAD_PRIORITY_DEFAULT稍微優先,值為-1。
THREAD_PRIORITY_LESS_FAVORABLE 相對THREAD_PRIORITY_DEFAULT稍微落後一些,值為1。
使用Android API為線程設定優先權也很簡單,只需要線上程執行時調用android.os.Process.setThreadPriority方法即可。這種線上程運行時進行修改優先順序,效果類似renice。
new Thread () { @Override public void run() { super.run(); android.os.Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND); }}.start();
java原生api設定優先權會在安卓裡面失效
go和rust比較
http://www.csdn.net/article/2015-09-01/2825605
其中一點讓我印象深刻
func current_branch(git_dir string) string { head_bytes, err := ioutil.ReadFile(path.Join(git_dir, "HEAD")) head := string(head_bytes) if err != nil { log.Fatal("Cannot open HEAD from ", git_dir) } r, _ := regexp.Compile("ref: ref/heads/(.+)") match := r.FindStringSubmatch(head) branch := match[1]//這個假設,go可以編譯通過,但rust編譯器提示需要判斷. return branch}
貌似有人說它沒有泛型不好
bug
requestLayout() improperly called by
http://stackoverflow.com/questions/24598977/android-requestlayout-improperly-called
how to fix this?
android:fastScrollEnabled=”false”
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。