以下实例演示了如何使用 getThreadId() 方法获取线程id:
Main.java 文件
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

 Java 实例
 Java 实例