社区
Java SE
帖子详情
java Thread 里面的变量能不能访问?
haozi2638
2007-05-17 10:50:36
java Thread 里面的变量能不能访问?
我想在外部调用这个Thread,在使用Thread处理了的数据,怎么实现,谢谢
...全文
278
8
打赏
收藏
java Thread 里面的变量能不能访问?
java Thread 里面的变量能不能访问? 我想在外部调用这个Thread,在使用Thread处理了的数据,怎么实现,谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
基础教程----精华版,不得不下载的资源
什么是线程局部
变量
?如何在
Java
中使用线程局部
变量
?
线程局部
变量
(
Thread
Local Variable)是指每个线程都有自己的值副本,互不干扰,线程之间互不可见。它可以理解为一种特殊的
变量
,每个线程对应一个
变量
副本,不同线程之间
访问
的是各自的副本。线程局部
变量
适用于在多线程环境下需要保持独立状态的
变量
,例如记录用户信息或跟踪线程执行过程等。使用线程局部
变量
时,要注意及时清理或移除
变量
的值,以免造成内存泄露。是
Java
提供的一个用于创建线程局部
变量
的类,它通过为每个线程创建一个独立的
变量
副本来实现。方法为当前线程的局部
变量
设置值。类来实现线程局部
变量
。
在
java
中什么是线程局部
变量
?
在
Java
中,线程局部
变量
(
Thread
Local Variable)指的是每个线程独享的
变量
,每个线程对该
变量
有自己的独立副本,互不干扰。类实现,提供了一种便捷和安全的方式来管理线程私有数据,适用于多线程环境下需要隔离和保护数据的场景。,其中保存了该线程所有的线程局部
变量
。类型的对象创建自己的
变量
副本,线程之间的
变量
访问
相互隔离,不会发生冲突。方法可以获取当前线程的
变量
值,而且这些操作不会影响其他线程的
变量
值。总结来说,
Java
中的线程局部
变量
通过。方法可以为当前线程设置
变量
的值,通过。
JAVA
多线程中
访问
变量
问题
类
变量
(类
里面
static修饰的
变量
)保存在“方法区”实例
变量
(类
里面
的普通
变量
)保存在“堆”局部
变量
(方法里声明的
变量
)“虚拟机栈” “方法区”和“堆”都属于线程共享数据区,“虚拟机栈”属于线程私有数据区。 因此,局部
变量
是
不能
多个线程共享的,而类
变量
和实例
变量
是可以多个线程共享的。事实上,在
java
中,多线程间进行通信的唯一途径就是通过类
变量
和实例
变量
。也就是说
Java
线程局部
变量
的使用
Java
线程局部
变量
的使用
Java SE
62,629
社区成员
307,258
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章