public class ThreadTest implements Runnable {
private int ticket=100;
public static void main(String[] args) {
// TODO Auto-generated method stub
ThreadTest thread = new ThreadTest();
Thread t1 = new Thread(thread,"window1");
Thread t2 = new Thread(thread,"window2");
Thread t3 = new Thread(thread,"window3");
t1.start();
t2.start();
t3.start();
}
public void run() {
// TODO Auto-generated method stub
while(ticket>0){
System.out.println(ticket-- + " saled by " + Thread.currentThread().getName());
}

}
}
打印结果:(留意最后两行)
100 saled by window1
99 saled by window1
98 saled by window1
97 saled by window1
96 saled by window1
95 saled by window1
94 saled by window1
93 saled by window1
92 saled by window1
91 saled by window1
90 saled by window1
89 saled by window1
88 saled by window1
87 saled by window1
86 saled by window1
85 saled by window1
84 saled by window1
83 saled by window1
82 saled by window1
81 saled by window1
80 saled by window1
79 saled by window1
78 saled by window1
77 saled by window2
76 saled by window2
75 saled by window2
73 saled by window2
72 saled by window2
71 saled by window2
70 saled by window2
69 saled by window2
68 saled by window2
67 saled by window2
66 saled by window2
65 saled by window2
64 saled by window2
63 saled by window2
62 saled by window2
61 saled by window2
60 saled by window2
59 saled by window2
58 saled by window2
57 saled by window2
56 saled by window2
55 saled by window2
54 saled by window2
53 saled by window2
52 saled by window2
51 saled by window2
50 saled by window2
49 saled by window2
48 saled by window2
47 saled by window2
46 saled by window2
45 saled by window2
44 saled by window2
43 saled by window2
42 saled by window2
41 saled by window2
40 saled by window2
39 saled by window2
38 saled by window2
37 saled by window2
36 saled by window2
35 saled by window2
34 saled by window2
33 saled by window2
32 saled by window2
31 saled by window2
30 saled by window2
29 saled by window2
28 saled by window2
27 saled by window2
26 saled by window2
25 saled by window2
24 saled by window2
22 saled by window2
21 saled by window2
20 saled by window2
19 saled by window2
18 saled by window2
17 saled by window2
16 saled by window2
15 saled by window2
14 saled by window2
13 saled by window2
12 saled by window2
11 saled by window2
10 saled by window2
9 saled by window2
8 saled by window2
7 saled by window2
6 saled by window2
5 saled by window2
4 saled by window2
3 saled by window2
2 saled by window2
1 saled by window2
74 saled by window1
23 saled by window3

解决方案 »

  1.   

    如果你改一下 改成:
    try
    {
    t1.start(); 
    Thread.sleep(500);
    t2.start(); 
    Thread.sleep(500);
    t3.start();
    }catch(InterruptedException e)
    {
    ;
    }
    这样也是会是你要的结果
      

  2.   

    JAVA有得你学的,慢慢学吧,加油,这是后面同步的问题
      

  3.   

    多线程这样就正常啊,或者你可以加SYNCHRONIZED
      

  4.   

    这个结果很正常~线程的调用是由jvm虚拟机来分配的~不知道下一刻会是哪个线程被调用~你要想它向着你要求的方向发展只有用线程锁的机制来控制~