社区
Java SE
帖子详情
java Thread 里面的变量能不能访问?
haozi2638
2007-05-17 10:50:36
java Thread 里面的变量能不能访问?
我想在外部调用这个Thread,在使用Thread处理了的数据,怎么实现,谢谢
...全文
270
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
基础教程----精华版,不得不下载的资源
什么是线程局部
变量
?如何在
Java
中使用线程局部
变量
?
线程局部
变量
(
Thread
Local Variable)是指每个线程都有自己的值副本,互不干扰,线程之间互不可见。它可以理解为一种特殊的
变量
,每个线程对应一个
变量
副本,不同线程之间
访问
的是各自的副本。线程局部
变量
适用于在多线程环境下需要保持独立状态的
变量
,例如记录用户信息或跟踪线程执行过程等。使用线程局部
变量
时,要注意及时清理或移除
变量
的值,以免造成内存泄露。是
Java
提供的一个用于创建线程局部
变量
的类,它通过为每个线程创建一个独立的
变量
副本来实现。方法为当前线程的局部
变量
设置值。类来实现线程局部
变量
。
JAVA
多线程中
访问
变量
问题
类
变量
(类
里面
static修饰的
变量
)保存在“方法区”实例
变量
(类
里面
的普通
变量
)保存在“堆”局部
变量
(方法里声明的
变量
)“虚拟机栈” “方法区”和“堆”都属于线程共享数据区,“虚拟机栈”属于线程私有数据区。 因此,局部
变量
是
不能
多个线程共享的,而类
变量
和实例
变量
是可以多个线程共享的。事实上,在
java
中,多线程间进行通信的唯一途径就是通过类
变量
和实例
变量
。也就是说
Java
线程局部
变量
的使用
Java
线程局部
变量
的使用
java
多线程
访问
变量
_
Java
:多线程
访问
主线程
变量
/方法
我正在测试以下代码,我想知道线程如何
访问
增量方法?我在想这个,因为
thread
1和
thread
2是从匿名类创建的对象,它们不继承worker类,它们如何
访问
increment()方法?它背后的理论是什么?public class Worker {private int count = 0;public synchronized void increment() {count++;}public v...
Java SE
62,630
社区成员
307,264
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章