Java获取线程ID的实例
以下实例演示了如何使用getThreadId()方法获取线程id:
publicclassMainextendsObjectimplementsRunnable{ privateThreadIDvar; publicMain(ThreadIDv){ this.var=v; } publicvoidrun(){ try{ print("vargetThreadID="+var.getThreadID()); Thread.sleep(2000); print("vargetThreadID="+var.getThreadID()); }catch(InterruptedExceptionx){ } } privatestaticvoidprint(Stringmsg){ Stringname=Thread.currentThread().getName(); System.out.println(name+":"+msg); } publicstaticvoidmain(String[]args){ ThreadIDtid=newThreadID(); Mainshared=newMain(tid); try{ ThreadthreadA=newThread(shared,"threadA"); threadA.start(); Thread.sleep(500); ThreadthreadB=newThread(shared,"threadB"); threadB.start(); Thread.sleep(500); ThreadthreadC=newThread(shared,"threadC"); threadC.start(); }catch(InterruptedExceptionx){ } } } classThreadIDextendsThreadLocal{ privateintnextID; publicThreadID(){ nextID=10001; } privatesynchronizedIntegergetNewID(){ Integerid=newInteger(nextID); nextID++; returnid; } protectedObjectinitialValue(){ print("ininitialValue()"); returngetNewID(); } publicintgetThreadID(){ Integerid=(Integer)get(); returnid.intValue(); } privatestaticvoidprint(Stringmsg){ Stringname=Thread.currentThread().getName(); System.out.println(name+":"+msg); } }
以上代码运行输出结果为:
threadA:ininitialValue()
threadA:vargetThreadID=10001
threadB:ininitialValue()
threadB:vargetThreadID=10002
threadC:ininitialValue()
threadC:vargetThreadID=10003
threadA:vargetThreadID=10001
threadB:vargetThreadID=10002
threadC:vargetThreadID=10003
以上就是Java获取线程ID的实例的详细内容,更多关于Java获取线程ID的资料请关注毛票票其它相关文章!