java中没有全局变量,因此用static代替全局变量,相当于全局变量。
因此,在多线程交互时,可以用static记录线程标号,比如该线程id用过static标志为3,下一个可以基于这个static变量加一,记录为第4号线程。
public class myred implements Runnable{
public volatile int cnt=0;
public static int tsk=0;//公共变量
private final int id=tsk++;//公共变量改变,记录为id,id相当于线程常量,一次性固定
public myred(){}
public myred(int cnt){
this.cnt=cnt;
}
public void run(){
cnt=cnt+1;
System.out.println(cnt);
System.out.println("running");
System.out.println(id);
}
public class mytrd {
public static void main(String[] args) {
for (int i=0;i<10;i++)
new Thread(new myred(i)).start();
}
}