这要看你这两个线程使用是不是同一个对象,我写个例子,你仔细看一下
public class Test {
class MyThreads implements Runnable{
private int flag = 0;
public MyThreads(){
}
@Override
public void run() {
System.out.println("flag = " + (++flag));
}
}
public Test(){
System.out.println("两条线程同用一个对象");
MyThreads myThread = new MyThreads();
new Thread(myThread).start();
new Thread(myThread).start();
}
public Test(int i){
System.out.println("两条线程使用不同对象");
MyThreads myThread = new MyThreads();
new Thread(myThread).start();
MyThreads myThread2 = new MyThreads();
new Thread(myThread2).start();
}
public static void main(String[] args) {
Test t = new Test();
try {
//线程输出太快,先暂停一会
Thread.currentThread().sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Test t2 = new Test(1);
}
}