我有个程序这样的: 一个线程类,负责执行某些运算,然后把运算的结果返回到主程序,主程序再利用这些结果来运算某些东西.但是现在我遇到一个问题:这个线程类的线程执行需要时间,还没把运算的结果返回的时候.主程序已经调用一个不可以预知的结果,造成我的程序产生无法预料的数据,请问哪位大侠举个例子来解决这个问题
解决方案 »
- 大家下午好 小妹 现在遇到一些问题 想请教各位... 好烦呀
- java 如何封装 DLL一样的文件呢?
- 多事件处理怎么只有一个显示输入字符
- 从1~9中任选四个整数,如何用加减乘除,括号,求24点的游戏怎么用Java语言编啊?
- 谁能提供一些和华为cc08交换机做接口的资料吗?谢谢
- 如何判断输入的字符能转化成整数?
- 请大家能提供一个关于利用javamail发送邮件的例子,由于无法找到免费smtp服务器,所以例子中需要能登陆到某个帐户后,在用smtp发送邮件。
- 谁知道哪有java web图表显示 的控间?
- 一个有趣的小问题:++,+= 1,= 1+真的一样吗
- 关于JAVA对话框的布局问题。
- 字符串匹配异常
- JSplitPane分隔条动态显示
public class test extends Thread{
static int i=0;
public void run(){
i++;
try{
Thread.sleep(1000);
}catch(Exception e){}
}
public static void main (String[] args) {
test t=new test();
t.start();
System.out.println(i);
}
}
怎样修改让他输出1
static int i = 0; public void run() {
i++;
try {
Thread.sleep(1000);
synchronized (this) {
notifyAll();
}
} catch (Exception e) {
}
} public static void main(String[] args) {
test t = new test();
t.start();
try {
synchronized (t){
t.wait();
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(i);
}
}这样该可以么?简单的可以使用wait notify,复杂的使用信号灯。