gpt4 book ai didi

java - 将整数传递给java中的运行线程

转载 作者:行者123 更新时间:2023-11-29 05:26:39 28 4
gpt4 key购买 nike

我在 Java 中遇到线程问题。我试图将一个整数从主线程传递给 Java 中的另一个正在运行的线程 - 但该值始终为 0。有没有办法解决这个问题?我想之所以会发生这种情况,是因为线程有自己的生命。

这是通过访问器方法接收整数的类。然后它应该在打印方法中打印 - 但正如我提到的,该值为零。

  class MyThread implements Runnable {


private int val;

public void run() {

printVal();
}

public void setValue(int val) {
this.val = val;
}

private void printVal() {

while (true) {
System.out.println("val: " + this.val);

try {
Thread.sleep(1000);
} catch (InterruptedException ie) {

}
}
}
}

最佳答案

您似乎遇到了变量的缓存值造成的障碍。要解决它,请将您的 int 声明为 volatile

private volatile int mainVal;

这样 int 就不会被缓存。现在您可以将它传递给其他线程而无需缓存效果。

关于java - 将整数传递给java中的运行线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22442905/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com