线程切换的2种方法:
thread.setPriority(Thread.MAX_PRIORITY);//1~10,通过线程设置
Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);//-20~19,通过进程设置
这两种方法是相对独立的,在android中建议用使用process去设置,其中第二种方法可以通过线程ID去设置,如果不设置的话,默认是当前线程。
线程和进程的获取常用方式: android.os.Process
获取当前进程ID:android.os.Process.myPid();
获取当前进程的用户ID:android.os.Process.myUid();
获取当前线程ID(1): Thread.currentThread().getId();
获取当前线程ID(2): android.os.Process.myTid();
获取应用主线程ID:Looper.getMainLooper().getThread().getId());
设置线程优先级常用方式
设置当前线程优先级:setThreadPriority(int priority);
设置指定线程优先级:setThreadPriority(int tid,int priority);
获取指定线程优先级:getThreadPriority(int tid);
管理指定进程
杀死指定的进程:killProcess(int pid);
向指定的进程发送信号: sendSignal(int pid,int singal);
在Android app 开发当中,经常需要判断当前线程是否是主线程中,主要有一下几种方式:
使用Looper类判断:
Looper.myLooper() != Looper.getMainLooper()
通过查看Thread类的当前线程:
Thread.currentThread() == Looper.getMainLooper().getThread()