×
Java 教程Java 简介Java 开发环境配置Java 基础语法Java 对象和类Java 基本数据类型Java 变量类型Java 修饰符Java 运算符Java 循环结构Java 分支结构Java Number类Java Character类Java String类Java StringBufferJava 数组Java 日期时间Java 正则表达式Java 方法Java Stream File IOJava 异常处理

Java 面向对象

Java 继承Java Override/OverloadJava 多态Java 抽象类Java 封装Java 接口Java 包(package)

Java 高级教程

Java 数据结构Java 集合框架Java 泛型Java 序列化Java 网络编程Java 发送邮件Java 多线程编程Java Applet基础Java 文档注释Java 实例Java 8 新特性Java MySQL 连接Java 9 新特性

Java 实例 - 获取线程id


Java 实例Java 实例


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


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)