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

代码是关于多线程的,很简单:publicclassMyThreadextendsThread{privatestaticintcount=0;publicMyThread... 代码是关于多线程的,很简单:
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
求解!
展开
 我来答
匿名用户
2015-11-27
展开全部
这段程序没有错,你的运行结果也没问题,你是不是想要下面这种结果,但这只是一种可能出现的结果。因为p线程和主线程是两个不同的线程,所以输出结果会根据实际运行时这两个线程的调度情况而不同,如果你多运行几次,还有可能会有别的输出结果
1:main
2:main
3:main
4:main
5:main
6:t1
7:t1
8:t1
9:t1
10:t1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
七寸烟火
2015-11-27 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:88
采纳率:0%
帮助的人:76.9万
展开全部
有什么不正常的吗
更多追问追答
追问
正确结果应该是:
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。。。都是有可能的 多线程本身是相互独立的 所以顺序上跟执行顺序有关 所以没问题


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

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

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式