首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

Java多线程,该怎么处理

2013-02-19 
Java多线程本帖最后由 xujinsmile 于 2013-01-28 23:56:15 编辑如下程序:package cn.xujinpublic class X

Java多线程
本帖最后由 xujinsmile 于 2013-01-28 23:56:15 编辑 如下程序:

package cn.xujin;

public class X implements Runnable{ 
private int x; 
private int y; 
public static void main(String[] args){ 
X that =new X(); 
X other = new X();
X theOther = new X();
System.out.println("0");
(new Thread(that)).start(); 
System.out.println("1");
(new Thread(other)).start(); 
System.out.println("2");
(new Thread(theOther)).start(); 

String s1 = "d";
String s2 = "222";
String s = s1 + s2;
System.out.println("over");
   } 
public synchronized void run(){ 
for(;;){ 
x++; 
y++; 
System.out.println("x="+x+",y="+y + "  " + Thread.currentThread().getName()); 
if(x > 10) break;

   } 
}  

他的输出结果总是类似:
0
1
2
over
x=1,y=1  Thread-0
x=1,y=1  Thread-2
x=1,y=1  Thread-1
.....

也就是先输出其他的,然后执行进程相关的代码,我就是不明白这个顺序。
有什么原理么? java 多线程 thread
[解决办法]
假定主子线程自子线程启动那一刻后所获得的时间片资源是相等的,那么就是子线程自启动后至其打印语句所经历的语句执行时间要比主线程的多才会如此表现。

热点排行