谁能帮我看看这个程序的运行结果

class A implements Runnable
{
int i = 0;
public synchronized void out()
{
while(true)
{
System.out.printf("haha");
try
{
Thread.sleep(1000);
}
catch(Exception e)
{

        }

    }
}
public synchronized void run()
{
    while(true)
    {
        try
        {
            Thread.sleep(100);
        }
        catch(Exception e)
        {

        }
        System.out.printf("%d",i++);
    }
}   

}
class test3
{
public static void main(String [] args)
{
A aa1 = new A();
Thread t1 = new Thread(aa1);
t1.start();
t1.setPriority(Thread.NORM_PRIORITY - 4);
aa1.out();

}   

}

hahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaha......
拿到程序里面执行不就可以了吗?

http://ideone.com/VowjA2
hahahahahahahahahahahahahahahahahahahahahaha

以后这种问题,你直接贴在ideone.com就可以得到答案了。

hahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaha

关键是为什么会这样?
两个线程不应该交替出现的吗

hahahaha重复一定的次数就可以了