社区
Java SE
帖子详情
java Thread 里面的变量能不能访问?
haozi2638
2007-05-17 10:50:36
java Thread 里面的变量能不能访问?
我想在外部调用这个Thread,在使用Thread处理了的数据,怎么实现,谢谢
...全文
266
8
打赏
收藏
java Thread 里面的变量能不能访问?
java Thread 里面的变量能不能访问? 我想在外部调用这个Thread,在使用Thread处理了的数据,怎么实现,谢谢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
打赏
举报
回复
关注
java
基础教程----精华版
-
Java
内置对多线程的支持,通过
Thread
类或实现Runnable接口创建线程。 - 线程同步机制,如synchronized关键字,Lock接口,避免多线程环境下数据不一致问题。 8. **网络编程**: - 使用Socket编程进行客户端/...
什么是线程局部
变量
?如何在
Java
中使用线程局部
变量
?
线程局部
变量
(
Thread
Local Variable)是指每个线程都有自己的值副本,互不干扰,线程之间互不可见。它可以理解为一种特殊的
变量
,每个线程对应一个
变量
副本,不同线程之间
访问
的是各自的副本。线程局部
变量
适用于在...
JAVA
多线程中
访问
变量
问题
类
变量
(类
里面
static修饰的
变量
)保存在“方法区...因此,局部
变量
是
不能
多个线程共享的,而类
变量
和实例
变量
是可以多个线程共享的。事实上,在
java
中,多线程间进行通信的唯一途径就是通过类
变量
和实例
变量
。也就是说
Java
线程局部
变量
的使用
Java
线程局部
变量
的使用
java
多线程
访问
变量
_
Java
:多线程
访问
主线程
变量
/方法
我在想这个,因为
thread
1和
thread
2是从匿名类创建的对象,它们不继承worker类,它们如何
访问
increment()方法?它背后的理论是什么?public class Worker {private int count = 0;public synchronized void increment() ...
Java SE
62,635
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章