是我的Eclipse出问题了吗?!同样的java代码在我的软件上运行的结果却是错误的,求大神指教!

代码是关于多线程的,很简单:
public class MyThread extends Thread
{
private static int count=0;
public MyThread(String name)
{
super(name);
}
public static void main(String[] args)
{
MyThread p=new MyThread("t1");
p.start();
for(int i=0;i<5;i++)
{
count++;
System.out.println(count+":main");
}
}
public void run()
{
for(int i=0;i<5;i++)
{
count++;
System.out.println(count+":"+this.getName());
}
}
}

这是我的软件运行的结果:
1:main
2:t1
3:main
4:t1
5:main
6:t1
7:main
8:t1
9:main
10:t1
求解!

第1个回答  2015-11-27
这段程序没有错,你的运行结果也没问题,你是不是想要下面这种结果,但这只是一种可能出现的结果。因为p线程和主线程是两个不同的线程,所以输出结果会根据实际运行时这两个线程的调度情况而不同,如果你多运行几次,还有可能会有别的输出结果
1:main
2:main
3:main
4:main
5:main
6:t1
7:t1
8:t1
9:t1
10:t1
第2个回答  2015-11-27
有什么不正常的吗追问

正确结果应该是:
1:main
2:main
3:main
4:main
5:main
6:t1
7:t1
8:t1
9:t1
10:t1

追答

不完全对的  并行多线程问题,两个线程(主线程main和t1)同时操作一个静态变量,这两个线程之间是相互独立的,两个结果都是有可能实现的,但是你说的第二种如果永远都是的话更有可能是错的,从代码上分析没啥问题 完全有可能的,另外也有更多可能,比如main t1 main t1 t1 main。。。都是有可能的 多线程本身是相互独立的 所以顺序上跟执行顺序有关 所以没问题


如果不信的话 请看下面的三个图

完全一样的代码,跟你的代码一样 因为我要在我专门的测试类中测试,所以就改了一下类名,每次执行结果都不一样的,这才是是正常的,如果满意请采纳,不懂请追问

追问

非常感谢你的回答!!真的是帮了大忙,但还是想请问有没有什么办法使输出结果分开。比如多线程处理socket,为了不使结果混乱,就是使每个客户端的结果独立输出,有没有什么办法呢?

本回答被提问者采纳

Java的eclipse为什么运行异常
Java的eclipse运行异常的原因总结:1、eclipse.ini的配置问题:可能配置的内存太小,或者系统本身内存不够了,比如以下配置成这样:-Xms128m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=512m -Dorg.eclipse.swt.browser.DefaultType=mozilla 修改以下xms和xmx就可以正常启动了。2、之前错误的关闭,...

为什么我的eclipse软件一打开就出现An error has occurred. See the...
这是因为电脑中用户帐户控制设置不当造成的,解决的方法和详细的操作步骤如下:1、首先,打开计算机,然后单击开始按钮,如下图所示,然后进入下一步。2、其次,完成上述步骤后,单击Windows系统选项,然后单击控制面板选项,如下图所示,然后进入下一步。3、接着,完成上述步骤后,单击类别选项,然后单击...

为什么我用Eclipse总是出错???
和eclipse没有关系,这样是表示代码有语法问题。这段代码大概有以下一些问题:1.导包的包名错误。2.不是代码部分的内容该注释要注释,比如第9行。3.方法名写错,java方法名一般遵循驼峰规则。比如第13行的方法名。在Scanner类中不是这么定义的。4.输出语句的引号是要成对出现的。比如第15行违反了。初...

为什么我用eclipse写完Java编译运行的总不是当前窗口的程序
主函数写错。比如:我把“String args[]”写成“String args”,结果编译不出来。

eclipse点击运行出现了这种错误是什么情况
1.环境变量没配置 2.eclipse和jdk版本位数不一致,要同是32位或者64位(注意32位机子只能使用32位的,64位可以兼容使用32位和64位的)解决办法:1.配置环境变量:第一步:右键“我的电脑”,点击“属性”第二步:点击“高级系统设置”,点击“环境变量(N)”第三步:在“系统变量(S)”下新建2个变量,...

Java同样的代码为什么两次运行结果不一样?
这是因为同一段代码运行的时间不一样,所以调用结果显示的就可能会有差距,时间短时可以显示,时间长时后面的跑在前面了,提前加载了。

为什么用Eclipse编程总是提示代码错误?我是按照Java教程的书上的代码...
1.按照书上写的话,可能有的书上引入的包的代码会省去,建议检查代码头 是否有import的代码 2.可能没有注意全码和半码 3.检查下标点符号 祝你好运!

eclipse打不开了,Java环境还在,因为在命令行里输入javac有反应
出现这种情况大多是因为电脑上之前安装过JDK,卸载重装之后,运行java命令会出现error:could not open ...jvm.cfg的错误。打开系统环境变量,查看PATH,会看到诸如此类的配置信息:SystemRoot%\\system32;%SystemRoot%;...%JAVA_HOME%\\lib;%JAVA_HOME%\\bin 原因:在运行java时,默认会按照PATH中设置的路径...

我今天在eclipse上编写了一个java聊天程序的客户端,但是老是出现编译错...
原因是使用了 content assist 功能,eclipse会去查找java的源代码,首先在本地找,然后到internet上找。本地默认是没有java的源代码。computing additional info表示在搜索internet上的java的源代码 解决办法:1. 找到JDK安装目录下的src.zip文件;2. 打开eclipse: Window菜单->Preference->Java->Installed ...

我的eclipse也是出现了那个问题,请问你是怎么解决的?谢谢了!
5.JAVA_HOME指明JDK安装路径,就是刚才安装时所选择的路径C:\\java\\jdk1.6.0.17,此路径下包括lib,bin,jre等文件夹(此变量最好设置,因为以后运行tomcat,eclipse等都需要依*此变量);Path使得系统可以在任何路径下识别java命令,设为:JAVA_HOME%\\bin;%JAVA_HOME%\\jre\\bin CLASSPATH为java加载...

相似回答