android 打印线程信息
来源:互联网 发布:知乎周刊pdf 编辑:程序博客网 时间:2024/06/01 08:12
今天,讲讲如何打印线程的id。
用语句:
android.os.Process.myPid():获取该进程的ID。
android.os.Process.myTid():获取该线程的ID。
android.os.Process.myUid():获取该进程的用户ID。
---------------------------------------
实例:viewrootImp.Java中的构造函数,打印进程和线程id
public ViewRootImpl(Context context, Display display) { mContext = context; mWindowSession = WindowManagerGlobal.getWindowSession(); mDisplay = display; mBasePackageName = context.getBasePackageName(); mDisplayAdjustments = display.getDisplayAdjustments(); mThread = Thread.currentThread(); Log.d("stl","ViewRootImpl "+android.os.Process.myPid()+" Thread: "+android.os.Process.myTid()+" name "+Thread.currentThread().getName());
输出:
01-08 13:22:23.509 2373 2373 D stl : ViewRootImpl 2373 Thread: 2373 01-08 13:22:25.929 4027 4027 D stl : ViewRootImpl 4027 Thread: 4027 01-08 13:22:26.979 4168 4168 D stl : ViewRootImpl 4168 Thread: 416801-08 13:22:27.949 3825 3825 D stl : ViewRootImpl 3825 Thread: 3825 01-08 13:22:28.069 3825 3825 D stl : ViewRootImpl 3825 Thread: 3825
前面一个号是进程id,后面一个号是线程id。
另外,可以使用getThreadId() 方法一个正在运行线程的ID。
public class Main extends Object implements Runnable { private ThreadID var; public Main(ThreadID v) { this.var = v; } public void run() { try { print("var getThreadID =" + var.getThreadID()); Thread.sleep(2000); print("var getThreadID =" + var.getThreadID()); } catch (InterruptedException x) { } } private static void print(String msg) { String name = Thread.currentThread().getName(); System.out.println(name + ": " + msg); } public static void main(String[] args) { ThreadID tid = new ThreadID(); Main shared = new Main(tid); try { Thread threadA = new Thread(shared, "threadA"); threadA.start(); Thread.sleep(500); Thread threadB = new Thread(shared, "threadB"); threadB.start(); Thread.sleep(500); Thread threadC = new Thread(shared, "threadC"); threadC.start(); } catch (InterruptedException x) { } }}class ThreadID extends ThreadLocal { private int nextID; public ThreadID() { nextID = 10001; } private synchronized Integer getNewID() { Integer id = new Integer(nextID); nextID++; return id; } protected Object initialValue() { print("in initialValue()"); return getNewID(); } public int getThreadID() { Integer id = (Integer) get(); return id.intValue(); } private static void print(String msg) { String name = Thread.currentThread().getName(); System.out.println(name + ": " + msg); }}
结果
上面的代码示例将产生以下结果。
threadA: in initialValue()threadA: var getThreadID =10001threadB: in initialValue()threadB: var getThreadID =10002threadC: in initialValue()threadC: var getThreadID =10003threadA: var getThreadID =10001threadB: var getThreadID =10002threadC: var getThreadID =10003
android 打印线程信息就讲完了。
就这么简单。
- android 打印线程信息
- Android 打印当前进程的所有线程信息
- 打印所有线程BT信息
- android log 信息打印
- android打印信息
- android 打印内存信息
- 控制台打印android信息
- Android JNI打印信息
- Android打印信息
- Android 打印输出信息
- android logcat不打印信息
- Netbean Android 打印调试信息
- android java打印栈信息
- android logcat不打印信息
- 打印android栈中的信息
- 打印android key的信息
- android ndk打印log信息
- Android NDK Log信息打印
- 超级快印自助复印点位链接
- DevOps落地实践:BAT系列:ALI:企业研发效能解决方案
- 十道海量数据处理面试题与十个方法大总结
- android-----------实现微信登录和分享功能。
- Python的pickle模块
- android 打印线程信息
- linux系统安装redis教程
- C语言程序设计习题1-16 打印任意长度的输入行的长度,并尽可能多地打印文本
- unity渲染先后顺序
- BaseAdapter 适配器模板
- redhat Linux6下搭建Web服务器
- HDU 4221 Greedy?(贪心)
- java项目路径问题
- Elasticsearch Java API 的使用(4)—更新索引