菜鸟教程 -- 学的不仅是技术,更是梦想!

Java 教程
(追記) (追記ここまで)

Java 实例 - 获取线程id

Java 实例 Java 实例

以下实例演示了如何使用 getThreadId() 方法获取线程id:

Main.java 文件

publicclassMainextendsObjectimplementsRunnable{privateThreadIDvar; publicMain(ThreadIDv){this.var = v; }publicvoidrun(){try{print("var getThreadID =" + var.getThreadID()); Thread.sleep(2000); print("var getThreadID =" + 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("in initialValue()"); returngetNewID(); }publicintgetThreadID(){Integerid = (Integer)get(); returnid.intValue(); }privatestaticvoidprint(Stringmsg){Stringname = Thread.currentThread().getName(); System.out.println(name + ": " + msg); }}

以上代码运行输出结果为:

threadA: in initialValue()
threadA: var getThreadID =10001
threadB: in initialValue()
threadB: var getThreadID =10002
threadC: in initialValue()
threadC: var getThreadID =10003
threadA: var getThreadID =10001
threadB: var getThreadID =10002
threadC: var getThreadID =10003

Java 实例 Java 实例

AI 思考中...

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址

AltStyle によって変換されたページ (->オリジナル) /