java 中 线程A能否读取线程B中的一个变量?如何读取?

如题所述

可以啊,如果仅仅只是读取的话,就像从 对象 A 里面读取对象 B 的变量一样操作就行了。
如果涉及到修改的话就要考虑同步问题了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-09-20
可以的,将这个变量设置为成员变量,那么线程就可以通过调用方法取得对变量的访问权
第2个回答  2012-09-18
共同访问一个类实例变量就可以了

java两个线程同时调用一个类里的同一个方法,这样会出现什么情况?有没...
public void writeDb(String key, String value) { collectiondb();write(key, value);closeDbCollection();} 4、因为Java的线程运行顺序是不一定的,可以第一个线程运行完连接数据库到后挂起了,这时候第二个线程开始运行,如果你的collectiondb()处理使用的是类中的一个实例变量Connection conn来保存...

java两个线程同时调用一个类里的同一个方法,这样会出现什么情况?有没...
public void writeDb(String key, String value) { collectiondb();write(key, value);closeDbCollection();} 4、因为Java的线程运行顺序是不一定的,可以第一个线程运行完连接数据库到后挂起了,这时候第二个线程开始运行,如果你的collectiondb()处理使用的是类中的一个实例变量Connection conn来保存...

java开两个线程操作同一个对象会有什么情况?
如果这个对象被上线程锁(线程安全),那么只有一个能获取到执行,另一个必须等待 如果只是部分代码被上锁,他们可以共享公共资源,上锁部分就必须等待 如果没有任何限制,那么每个线程都可能创建一个新对象,互不干扰 举个例子,有台打印机,打印程序,如果a.b都想打印,那么它们必须等待先来的完成,打印...

Java编程时主线程如何捕获子线程抛出的异常
以下是一些Java编程设计的建议:遵循Java编码规范:Java编码规范是Java开发人员共同遵守的规则,它规定了命名规范、注释规范、代码布局等方面的要求。遵循这些规范可以使代码更加易读、易维护。使用有意义的变量名和方法名:变量名和方法名应该能够清晰地表达它们的含义和用途。使用有意义的名称可以使代码更加易...

JAVA中多线程读取成员变量的重复问题
在某一时刻,num=8,线程1SystemOut:8,然后被中断,执行线程2,也是SystemOut:8,然后又被中断执行线程3,再线程4,这时候4个线程都输出了8,最后回到线程1执行num--。即使是一条语句,也不能保证是原子操作,除非调用的对象说明是线程安全的,或者使用锁、队列,否则都不能保证并发的安全。

线程间的通信方式
1、通过共享对象通信 线程间发送信号的一个简单方式是在共享对象的变量里设置信号值。线程A在一个同步块里设置boolean型成员变量hasDataToProcess为true,线程B也在同步块里读取hasDataToProcess这个成员变量。线程A和B必须获得指向一个MySignal共享实例的引用,以便进行通信。如果它们持有的引用指向不同的My...

java中怎么把一个线程里面的变量传到另一个线程
把这个变量定义提取到线程外部, 线程通过引用持有这个变量, 这样就可以实现变量的共享, 这个时候就要注意线程同步的问题.

获取java线程中信息的两种方法[1]
现在我想在另外一个类中启动ReturnThreadInfo线程 并通过getThreadInfo()方法获取值为 Hello World! 的变量并打印输出到控制台中 以下给出一个实现该功能的Main类 package threadtest ;\/*** @author shi mingxiang*\/public class Main{public Main() {}\/** * @param args the mand line argument...

java自定义事件,线程a如何每一秒钟触发一个事件,然后另一个线程b监听之...
线程a这个类里面是有一个专门存放监听器的一个容器,例如是list。然后你 增加监听器的方法就是把监听器放进这个容器里面。你用一个监听器去监听一个事件的发生,就可以在线程a这个类中,写一个产生事件的一段代码,然后每当产生一个事件之后,去遍历list,去调用监听器的对于这个事件的处理方法,这样子...

java中如果不加同步锁,多个线程对同一个变量修改,为什么会出现混乱...
因为线程的完成时间问题,有可能线程A先完成,将变量S赋值为s了,然后线程B再完成,将S赋值为s1,那么S的值就为s1;但是,有可能线程B先完成,将S赋值为s1,然后线程A再完成,给S赋值s,那么S的值就是s了。

相似回答