public class thread11  

    public static void main(String[] args) 
    { 
    compute t=new compute(); 
    new Thread(t).start(); 
    new Thread(t).start(); 
    new Thread(t).start(); 
    } 

///创建一个线程类 
///在这线程类中,使用循环语句输出字符 
///在run方法中,使用同步块来给线程加一把锁 
class compute extends Thread 

    int i=10; 
    static Object obj=new Object(); 
    public void print() 
    { 
        System.out.println(Thread.currentThread().getName()+":"+i); 
        i--; 
    } 
    public void run() 
    { 
        while(i>0) 
        { 
            synchronized(obj) 
            { 
                print(); 
            }  
            try  
            {  
                sleep(1000);  
            }  
            catch(Exception e){} 
        }  
    }  

这是一本书上的例子,我认为输出结果应该是前三个线程名的顺序重复输出的,但实际输出结果好像是随机的。请高手指点下