线程优先级设置:
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”