C#线程新手求助啊 C#线程问题

class Program
{
static void Main(string[] args)
{

         Thread thread1 = new Thread(new ThreadStart(fun_thread1));            
         Thread thread2 = new Thread(new ThreadStart(fun_thread2));
         thread1.Start();
         thread2.Start();
     }
    static void fun_thread1()
     {
         for (int i = 1; i < 60;i++ )
         {
            Console.WriteLine( "  1");
            Thread.Sleep(30);
         }
     }
    static void fun_thread2()
     {
         for (int i = 1; i < 60;i++ )
         {
            Console.WriteLine( "  2");
            Thread.Sleep(30);
         }
     }

}
为什么运行出来的结果是1、2交替的啊??不应该是无序的吗???不知道是不是sleep和时间片的原因,把sleep去掉就是无序了,但是我需要让这两个进程隔一段时间执行一次而且要无序~~~
图片说明
新人求助啊!!!

我记得sleep是指挂起线程一段时间,出让CPU,如果这么理解的话,两个线程利用sleep交替占用CPU也没什么不对啊~

使两个sleep的时间不一样

sleep(随机秒数即可实现你的要求)

是你的行为造成了打印出来的数据是有序的

sleep 都是30 改一下

是程序的问题还有就是sleep时间问题,先执行fun__thread1()是因为它先start的,而且和你当时的cpu活动状况有关,