欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

Java获取线程ID的实例

时间:2021-04-06 10:01:19|栏目:JAVA代码|点击:

以下实例演示了如何使用 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 =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代码

下一篇:如何在java 8 stream表达式实现if/else逻辑

本文标题:Java获取线程ID的实例

本文地址:http://www.codeinn.net/misctech/95555.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有