设为首页 加入收藏

TOP

Java线程:线程私有变量
2014-11-13 09:45:07 来源: 作者: 【 】 浏览:23
Tags:Java 线程 私有 变量

  线程对象也是从一个(线程)类而构建的,线程类作为一个类也可以拥有自己的私有成员。这个成员为此线程对象私有,有时候使用线程私有变量,会巧妙避免一些并发安全的问题,提高程序的灵活性和编码的复杂度。


  下面举例来说吧,统计一个线程类创建过多少个线程,并为每个线程进行编号。


  package com.lavasoft.test;


  /**


  * 为线程添加编号,并确所创建过线程的数目


  */


  public class ThreadVarTest {


  public static void main(String[] args) {


  Thread t1 = new MyThread();


  Thread t2 = new MyThread();


  Thread t3 = new MyThread();


  Thread t4 = new MyThread();


  t1.start();


  t2.start();


  t3.start();


  t4.start();


  }


  }


  class MyThread extends Thread {


  private int x = 0; //线程编号


  MyThread() {


  x = sn++;


  }


  @Override


  public void run() {


  Thread t = Thread.currentThread();


  System.out.println(t.getName() + "\t" + x);


  }


  }


  运行结果:


  Thread-0 0


  Thread-1 1


  Thread-2 2


  Thread-3 3


  Process finished with exit code 0


  这个程序是很多公司面试题,这是一种求解方式,应该是最简单的求解方式。还有用ThreadLocal实现的版本,还有其他的,都没有这个代码简洁。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇普通Java类获取Spring的bean 下一篇Java线程:深入ThreadLocal

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: