关于线程的问题。。。。请教。。。 有一静态整形变量X,初始值为0,用JAVA写四个线程,二个对其加1,二个对其减一,X等于0时不进行减操作,X等于5时结束程序。能不能解答一下。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ass test { private static int x = 0; public static int getX() { return x; } public synchronized static void setX(int x) { test.x = x; } public static void main(String[] args) { final test t = new test(); new Add(t).start(); new Add(t).start(); new Less(t).start(); new Less(t).start(); }}class Add extends Thread { test t; Add(test t) { this.t = t; } @Override public void run() { while (true) { synchronized (t) { if (t.getX() == 5) { break; } System.out.println(this.toString() + ",x的值为:" + t.getX() + " ++"); System.out.flush(); t.setX(t.getX() + 1); } try { Thread.sleep(1); } catch (InterruptedException ex) { Logger.getLogger(Add.class.getName()).log(Level.SEVERE, null, ex); } } System.out.println(this.toString() + ",x的值为:" + t.getX() + "结束线种"); }}class Less extends Thread { test t; Less(test t) { this.t = t; } @Override public void run() { while (true) { synchronized (t) { if (t.getX() == 5) { break; } if (t.getX() != 0) { System.out.println(this.toString() + ",x的值为:" + t.getX() + ",--"); t.setX(t.getX() - 1); } else { System.out.println("x的值为0,不进行减操作"); } System.out.flush(); } try { Thread.sleep(1); } catch (InterruptedException ex) { Logger.getLogger(Add.class.getName()).log(Level.SEVERE, null, ex); } System.out.println(this.toString() + ",x的值为:" + t.getX() + "结束线种"); } }} quartz 排程 晚8小时,时区问题 类库 连接sql server的时候出现Value can not be converted to requested type. 一段java代码问题 简单的问题~快来帮忙啊 父类声明的接口,子类还用声明吗? 为什么我的XP老是自动关机? 我想请教一下jtextpane 插入图片文字 混合时,,如何计算 图片的位置。。 cvs中如何改变时间? 如何让一个comboBox的高度固定,而宽度随容器的增大而增大,缩小而缩小呢? 各位大虾:做Java外包需要什么样的技术水平? 高分求解JAVA中解析HTML的正则表达式写法
return x;
} public synchronized static void setX(int x) {
test.x = x;
} public static void main(String[] args) {
final test t = new test();
new Add(t).start();
new Add(t).start(); new Less(t).start();
new Less(t).start();
}
}class Add extends Thread { test t; Add(test t) {
this.t = t;
} @Override
public void run() {
while (true) {
synchronized (t) {
if (t.getX() == 5) {
break;
}
System.out.println(this.toString() + ",x的值为:" + t.getX() + " ++");
System.out.flush();
t.setX(t.getX() + 1);
}
try {
Thread.sleep(1);
} catch (InterruptedException ex) {
Logger.getLogger(Add.class.getName()).log(Level.SEVERE, null, ex);
}
}
System.out.println(this.toString() + ",x的值为:" + t.getX() + "结束线种");
}
}class Less extends Thread { test t; Less(test t) {
this.t = t;
} @Override
public void run() {
while (true) {
synchronized (t) {
if (t.getX() == 5) {
break;
}
if (t.getX() != 0) {
System.out.println(this.toString() + ",x的值为:" + t.getX() + ",--");
t.setX(t.getX() - 1);
} else {
System.out.println("x的值为0,不进行减操作");
}
System.out.flush();
}
try {
Thread.sleep(1);
} catch (InterruptedException ex) {
Logger.getLogger(Add.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println(this.toString() + ",x的值为:" + t.getX() + "结束线种");
}
}
}