当前位置: 技术问答>java相关
高手一定懂的问题,拜托了。
来源: 互联网 发布时间:2015-02-04
本文导语: class test implements Runnable { private int x; private int y; public void run() { setX(2); setY(3); System.out.println(check()); } public static void main(String args[]) { test h=new test(); new Thread(h).start(); new Thread(h).start(); } vo...
class test implements Runnable {
private int x;
private int y;
public void run() {
setX(2);
setY(3);
System.out.println(check());
}
public static void main(String args[]) {
test h=new test();
new Thread(h).start();
new Thread(h).start();
}
void setX(int i) {
x=i;
}
void setY(int j) {
y=j;
}
synchronized void setXY(int i) {
setX(i);
setY(i);
}
synchronized boolean check() {
return x!=y;
}
}
为什么输出的结果是两个true的?
private int x;
private int y;
public void run() {
setX(2);
setY(3);
System.out.println(check());
}
public static void main(String args[]) {
test h=new test();
new Thread(h).start();
new Thread(h).start();
}
void setX(int i) {
x=i;
}
void setY(int j) {
y=j;
}
synchronized void setXY(int i) {
setX(i);
setY(i);
}
synchronized boolean check() {
return x!=y;
}
}
为什么输出的结果是两个true的?
|
建立两个线程调用了两次run()?