2 qq 27263999 qq_27263999 于 2016.02.27 14:46 提问

Java问题!!!求指教

public class Demo {
private static int i = 10;
public static void main(String args []){
new Thread(new Runnable() { @Override
public void run() {
i++;
i++; }
}).run();
System.out.println(i); }
}

输出是什么,原因呢....

11个回答

shallynever
shallynever   2016.02.27 15:20
已采纳

首先要说的此代码中并没有开启新线程,因为开启一个线程是调用start()方法,在这里只是调用了run()方法,就像调用一般方法一样,调用run()方法之后
,i变量进行了两次自增操作,所以最后输出结果为:12 而且一定是12 ,没有楼上那个人说的那样结果。

shallynever
shallynever   2016.02.27 15:26

图片说明 就在我标红的地方调用了run()方法

caozhy
caozhy   Ds   Rxr 2016.02.27 15:10

System.out.println(i);这个可能先执行,也可能后执行,先执行输出10,后执行输出11或者12,结果不确定。

caozhy
caozhy   Ds   Rxr 2016.02.27 15:16

哦,看错了,结果是12,因为调用的是run,并没有启动新线程,所以是顺序执行。

zhanyiwen1
zhanyiwen1   2016.02.27 15:30

不知道,只觉得是这样的

u012784504
u012784504   2016.02.27 16:39

.start();................

u013853871
u013853871   2016.02.27 18:49

多线程要调用start()方法,如果只调用run()方法就像调用普通方法一样,所以结果就是i自增两次,输出结果为12

evan_man
evan_man   2016.02.28 09:33

12,肯定12;又不是开启线程,只是调用以下run方法,把它看成一个普通成员方法就行了;
真正开启线程执行Thread.start(),这样才结果未知

sun2015_07_24
sun2015_07_24   2016.02.27 14:57

12,启动这个线程i即行了两次加加

qq_27263999
qq_27263999 后面那个是 .run(),不是 .start() 这里没有启动线程。。。
2 年多之前 回复
Royal_lr
Royal_lr   Ds   Rxr 2016.02.27 15:11

明显是12.。。线程启动,,i加了2次

qq_27263999
qq_27263999 后面那个是 .run(),不是 .start() 这里没有启动线程。。。
2 年多之前 回复
共11条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
_tcp_iocp_vc6_1.rar
_tcp_iocp_vc6_1.rar 帮看看问题,求指教
有两个序列a,b,大小都为n,序列元素的值任意整数,无序;要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。
第一种解法: [cpp] view plaincopyprint? /*  *copyright@nciaebupt 转载请注明出处  *问题:有两个序列a,b,大小都为n,序列元素的值任意整数,无序;  *要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。  *比如 a=[100 ,99 ,98
算式计算器C++实现代码(顺序栈结构 增加了一些功能 求指教)
转自http://blog.sina.com.cn/s/blog_72e53c4c0100qw5n.html 数据结构课上学习栈结构的时候 根据老师的实验要求用VC++6.0平台写了这段代码除了加减乘除乘方,稍微自己加了一些好玩的小功能,比如计算阶乘"!",三角函数,比如正弦 "sin",对数"log"与"ln",常量pi(圆周率),自然对数底数"e"也加进去了,算是初步模仿中学用的科学计算器吧
Aandroid88KUY
求指教
数组指针问题(求指教)
#include using namespace std; int main() {  float(**q)[5];  float a[1][5]={{1,2,3,4,5}};  q=&new float [1][5];//编译可以通过  //q=&a;//编译通不过  //q=new float*;//此处我原本想先给q分配一个内存空间,用于存取二维数组a的地址  //却找不到
问题,求指教
01./* Copyright (c) 2012, 烟台大学计算机学院 02.* All rights reserved. 03.* 作 者: 周建 04.* 完成日期:2012 年 10 月 22 日 05.* 版 本 号:v1.0 06.* 输入描述:略 07.* 问题描述:应该输出ddesd,为什么除了这几
zibosoft 梓博录音说明书
电话录音管理系统2010_3.12 第一章简 介 本公司将先进语音技术,同大容量磁盘存储技术相结合,推出性能优异的新 一代多路电话商务录音管理系统,是对电话双方通话过程,进行实行自动录音和实 时监听功能的软硬件集成系统。能对多路电话同时进行超长时间录音,显示记录主 叫号码、被叫号码及通话时长等,通话信息并保存于电脑,系统管理人员可以对任 意正在通话的通道进行实时监听,而通话不受任何影响。 录音采用国际通用语音处理及压缩技术符合CCITT标准,将话音信号经取样 数字化压缩后存储在计算机磁盘中。放音则是通过对磁盘上的语音数据进行解压 后,通过外接音箱(耳机)播放。是生产调度、服务热、110、火警、防讯报警、银 行委托、证卷行业等领域不可缺少的工具。 CE/FCC CE/FCC 本公司所有录音系列产品均通过CCEE//FFCCCC认证,产品已布及国家和地区:美国、 港澳台地区新加坡,马来西亚,印度尼西亚等东南亚国家,南美诸国中东地区,以 及西亚地区,出口品质值得信赖。 系统基本功能: � 支持windows7/windows2008/NT/2000/XP/2003/操作环境。 � 提供USB接口2路PCI接口单卡4路/8路/16路数字30B+D(30路)。 � 可实时监听每一条线路的通话内容。 � 支持三种录音模式自动录音(压控)声控可手动录音(键控)。 � 可以对所有的拨入、拨出未接电话进行清单列表、打印、支持条件查询及添加 通话备注。 � 支持直线交换机的内线分机接入同时录音。 � 系统支持自动备份,可将语音文件自动备刻录到DVD支持自动循环录音。 � 系统附带来电客户信息管理系统,可识别来电身份及自定义来电座席弹屏。 � 录音起始时间可以灵活设置可以是一段时间内录音,也可以是每天24小时录 音。
倒三角形 java实现
public class Trigle1{ public static void main(String[] args) { System.out.println("打印直边靠右倒直角三角"); for(int i=1;i { for(int j=1;j { System.out.print(" "); } for(int j=5;j>=2*i-3;j--)
Java 初学者 求指教
-
余生请多指教
青青子衿,悠悠我心。 可能形容我对CSDN的情感极好不过了。 余生,请多指教。