Java获取线程ID的实例
以下实例演示了如何使用 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 =10001threadB: in initialValue()threadB: var getThreadID =10002threadC: in initialValue()threadC: var getThreadID =10003threadA: var getThreadID =10001threadB: var getThreadID =10002threadC: var getThreadID =10003
以上就是Java获取线程ID的实例的详细内容,更多关于Java获取线程ID的资料请关注好吧啦网其它相关文章!
相关文章:
1. python 爬取哔哩哔哩up主信息和投稿视频2. Ajax 请求队列解决方案并结合elementUi做全局加载状态3. jsp request.getParameter() 和request.getAttribute()方法区别详解4. 利用CSS3新特性创建透明边框三角5. python使用pynput库操作、监控你的鼠标和键盘6. css列表标签list与表格标签table详解7. python中Task封装协程的知识点总结8. Xpath语法格式总结9. .net core 3.1 Redis安装和简单使用10. PHP中的闭包function() use() {}使用场景和技巧

网公网安备