多线程不交替执行问题
很短的一个程序,运行时发现总是在主线程(main函数)中的打印完成后,才能打印handle函数中的语句,为什么两个线程不是交替执行呢? 
 #include    <stdio.h>  
 #include    <pthread.h>    
 void   handle(void);   
 int   main(void) 
 { 
          pthread_t   id; 
          int   i; 
          int   ret   =   0;            
          ret   =   pthread_create(&id,NULL,(void   *)handle,NULL); 
          if(ret   !=0) 
             printf( "thread   create   err!!\n "); 
          for(i   =   0;   i    <   1000;   i++) 
          printf( "im   main\n ");   
       pthread_join(id,NULL); 
          return   0; 
 }   
 void   handle(void) 
 { 
          int   i; 
          for(i=0;i <10;i++) 
                printf( "im   sub   thread!!\n "); 
 }      
 运行结果:    
 im   main 
 im   main 
 im   main 
 im   main 
 im   main 
 . 
 . 
 . 
 . 
 . 
 im   sub   thread 
 im   sub   thread 
 im   sub   thread 
 . 
 .
------解决方案--------------------不可以将for(i = 0; i  < 1000; i++) 
 改成usleep(...)吗? 
------解决方案--------------------循环太短了吧   
 2.4内核还是非抢占式的   
 只有主线程的时间片用完后才会切换cpu   
 你可以在循环中主动切换cpu,或者使用2.6内核看看
------解决方案--------------------是太快了,你把主线程中加个sleep()就可以看到了。