这是我用2个线程替换打印2个不同数字的简单代码。线程A打印1和线程B打印2.两者之间应交替打印1,2,1,2,1,2,1,2,....等等。 现在我在下面的程序中看到我们得到< 1,2>,< 1,2>组合,......等等5次。
看起来两个线程都有相同的变量共享。但我是一个局部变量。我如何分享
public class MyThread扩展Thread {
int numToPrint;
Turn turn;
MyThread(int n, Turn turn)
{
this.numToPrint=n;
this.turn=turn;
}
public void run() {
for (int i=0;i<10;i++) {
if(turn.t==numToPrint) {
System.out.println(numToPrint);
if(numToPrint==1)
turn.t=2;
else
turn.t=1;
turn.doNotify();
}
else
{
turn.doWait();
}
}
}
}
public class Main {
public static void main(String[] args) {
Turn t=new Turn();
MyThread t1=new MyThread(1,t);
t1.start();
MyThread t2=new MyThread(2,t);
t2.start();
}
}