- 将帖子标记为未读
- 将此主题添加到书签
- 订阅此主题
- 禁止
- 订阅此主题的 RSS 提要
- 高亮显示此贴
- 打印此贴
- 通过电子邮件将此主题发送给好友
- 标记帖子
报告BUG:程序运行时,内核使用
发布时间 2019-10-23 14:36:45
我是一名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后,新启线程也停止了。
我在我同事的电脑上运行,以及其他电脑上运行,结果均为预期效果。
请查看是何原因??
- 将帖子标记为未读
- 将此主题添加到书签
- 订阅此主题
- 禁止
- 订阅此主题的 RSS 提要
- 高亮显示此贴
- 打印此贴
- 通过电子邮件将此主题发送给好友
- 标记帖子
报告BUG:程序运行时,内核使用
发布时间 2019-10-23 14:49:05
@走在去往人生巅峰的大路 已写:我是一名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后,新启线程也停止了。
我在我同事的电脑上运行,以及其他电脑上运行,结果均为预期效果。
请查看是何原因??
这个还真支持不了,不是专业范围。先要确定是否和惠普产品本身有关系。
服务中心查询
www.hp.com/cn/asc
惠普服务官方微信
https://www8.hp.com/cn/zh/contact-hp/webchat-support.html?src=csptwechat