java Thread 里面的变量能不能访问?

haozi2638 2007-05-17 10:50:36
java Thread 里面的变量能不能访问?
我想在外部调用这个Thread,在使用Thread处理了的数据,怎么实现,谢谢
...全文
262 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
awded 2007-05-17
  • 打赏
  • 举报
回复
用JDK5.0 的concurrency 新线程模型吧
ExecutorService es = Executors.newFixedThreadPool(3);
Future<String> result;
Callable<String> t = new Worker();
result = es.submit (t);
try {
System.out.println(result.get());//当线程运行完成后,将会通过get() 方法返回结果
} catch(Exception e) {
}


class Worker implements Callable<String> {
public String call() {
return "done";
}
}
tyztyz1006 2007-05-17
  • 打赏
  • 举报
回复
thread 应该用run函数吧

haozi2638 2007-05-17
  • 打赏
  • 举报
回复
我在Thread类里面做了一个get的方法,但是在外部声明了之后
Thread getuser = new GetUserList();
getuser.start();
这里并不能调用getuser里面的方法啊
flyforlove 2007-05-17
  • 打赏
  • 举报
回复
做一个get方法就可以了。
awded 2007-05-17
  • 打赏
  • 举报
回复
似乎写错了……
private String result;

Thread getuser = new GetUserList(new ThreadCallback() {
public String get(String result) {
this.result = result;
});
在Thread 完成了之后,用callback 函数返回结果。最好的main 线程里面加一个循环,然后sleep,等到新线程返回结果后,再往下执行。不过,还是比较别扭
awded 2007-05-17
  • 打赏
  • 举报
回复
如果不用JDK1.5 的话,那就用一个Callback 吧,象这么写:
Thread getuser = new GetUserList(new ThreadCallback() {
public String get() {
return "done";
});
getuser.start();

class GetUserList extends Thread {
private ThreadCallback callback;
public GetUserList(ThreadCallback callback) {
this.callback = callback;
}
......
}

interface ThreadCallback {
public String get();
}

JDK5.0 的新线程模型,可以说是大大提升了Java 线程执行效率,而且多了几种好用的锁,比以前只能用synchronized 进行线程同步来说,好用多了。
haozi2638 2007-05-17
  • 打赏
  • 举报
回复
楼上的谢谢了,没有1.5不行吗?
好像看不懂你写的东西哦
likgui 2007-05-17
  • 打赏
  • 举报
回复
关注

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧