取消
显示结果 
搜索替代 
您的意思是: 
学生
学生
1 0 0 0
1个帖子(共 2 条)
567 次查看
标记帖子

报告BUG:程序运行时,内核使用

EliteBook
Microsoft Windows 10 (64-bit)

我是一名Java程序员,在试验线程可见性的问题时,写了一段代码程序,请看:

public class VolatileFaceThread{
boolean isRunning = true;
void m() {
System.out.println("isRunning start");
while(isRunning) {

}
System.out.println("isRunning end");
}
public static void main(String[] args) {
VolatileFaceThread vft = new VolatileFaceThread();
new Thread(vft :: m).start();
try {
TimeUnit.SECONDS.sleep(1);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

vft.isRunning = false;
System.out.println("update isRunning...");
}
}

预期效果:新开启的线程,将会一直运行下去

实际效果:在主线程更新isRunning后,新启线程也停止了。

我在我同事的电脑上运行,以及其他电脑上运行,结果均为预期效果。

请查看是何原因??

1 条回复1
教务长 教务长
教务长
31,664 27,305 2,264 3,071
2个帖子(共 2 条)
标记帖子

报告BUG:程序运行时,内核使用


@走在去往人生巅峰的大路  已写:

我是一名Java程序员,在试验线程可见性的问题时,写了一段代码程序,请看:

public class VolatileFaceThread{
boolean isRunning = true;
void m() {
System.out.println("isRunning start");
while(isRunning) {

}
System.out.println("isRunning end");
}
public static void main(String[] args) {
VolatileFaceThread vft = new VolatileFaceThread();
new Thread(vft :: m).start();
try {
TimeUnit.SECONDS.sleep(1);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

vft.isRunning = false;
System.out.println("update isRunning...");
}
}

预期效果:新开启的线程,将会一直运行下去

实际效果:在主线程更新isRunning后,新启线程也停止了。

我在我同事的电脑上运行,以及其他电脑上运行,结果均为预期效果。

请查看是何原因??


这个还真支持不了,不是专业范围。先要确定是否和惠普产品本身有关系。


欢迎来到社区,我是一名志愿者,私人信息不会被回复。
如果我的回复对您有帮助, 请点击按钮。如果我的回复帮助您解决了问题,别忘了点击,可以帮到其他遇到同样问题的用户。


我长期使用过的机型
DC7600 USDT
Pavilion dv4000
ProBook 6510b
xw4600
z800
z820
EliteBook 2740p
ProBook 6460b
Pavilion DV4
Envy 15
SlateBook x2
ProDesk 600 G3 SFF
t5740 Thin Client
t620 Thin Client
EliteBook 840 G3
ZBook 15 G3
ProBook 440 G8
Omen 25L GT12 AMD
这条回复对您有帮助吗? 没有
† 惠普支持社区是一个客户交流平台,便于客户找到有效的解决方法,快速解决问题,充分利用惠普产品。请在发帖之前,阅读社区的使用条款注册须知。