程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java線程:線程私有變量

Java線程:線程私有變量

編輯:關於JAVA

線程對象也是從一個(線程)類而構建的,線程類作為一個類也可以擁有自己的私有成員。這個成員 為此線程對象私有,有時候使用線程私有變量,會巧妙避免一些並發安全的問題,提高程序的靈活性和編 碼的復雜度。

下面舉例來說吧,統計一個線程類創建過多少個線程,並為每個線程進行編號。

package com.lavasoft.test;
/**
* 為線程添加編號,並確所創建過線程的數目
*
* @author leizhimin 2010-1-4 14:15:31
*/
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 static int sn = 0;    //線程數
         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實現 的版本,還有其他的,都沒有這個代碼簡潔。

出處:http://lavasoft.blog.51cto.com/62575/258380

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved