取消
显示结果 
搜索替代 
您的意思是: 
  • ×
    信息
    修复Windows 10更新问题

    解决HP 电脑上的Windows 10更新问题 - 点击查看

  • post a message
  • ×
    信息
    修复Windows 10更新问题

    解决HP 电脑上的Windows 10更新问题 - 点击查看

  • post a message
学生
学生
1个帖子(共 2 条)
116 次查看
标记帖子

报告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
Highlighted
教务长 教务长
教务长
2个帖子(共 2 条)
108 次查看
标记帖子

报告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后,新启线程也停止了。

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

请查看是何原因??


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

我是HP员工。
回复
0 项奖励
† 惠普支持社区是一个客户交流平台,便于客户找到有效的解决方法,快速解决问题,充分利用惠普产品。请在发帖之前,阅读社区的使用条款注册须知。