为了账号安全,请及时绑定邮箱和手机立即绑定

Java:基础的多线程问题,思路没转过来这个弯

Java:基础的多线程问题,思路没转过来这个弯

守着一只汪 2019-02-20 03:09:10
class Core { private int value; public int getSum() { for (int i = 0; i < 50000000; i++) { value++; } return value; } } public class DemoRunnable implements Runnable{ @Override public void run() { Core core = new Core(); int sum = core.getSum(); try { Thread.sleep(100); } catch (Exception e) { e.printStackTrace(); } System.out.println(sum); } } public class Client { public static void main(String[] args) { DemoRunnable core = new DemoRunnable(); Thread one = new Thread(core); Thread two = new Thread(core); one.start(); two.start(); } } 这段代码的输出结果为 50000000 50000000 为什么会有两行输出结果呢?虽然创建了两个线程,但是执行的是同一个Runnable的实例,那么应该只输出一个“50000000”才对吧?
查看完整描述

1 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

new Thread的时候使用Runnable作为线程运行的代码 生成了一个新的线程对象
new了两次就是创建了两个
start了两次分别启动这两个线程的执行

查看完整回答
反对 回复 2019-03-01
  • 1 回答
  • 0 关注
  • 411 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号