日期:2014-05-20  浏览次数:20680 次

java讨论新建的线程到底什么时候获得cup的使用权
当创建完一个线程后,这个线程什么时候能获得cup的正真使用呢?
public class Test1 extends Thread {
  public void run() {
for (int i = 0; i < 16; i++) {
System.out.println(Thread.currentThread().getName() + " " + i);
}
}
public static void main(String[] args) {
Test1 t1 = new Test1();
t1.start();
}
}
1.是调用t1.start()之后,立刻获得cup吗?
2.还是说t1.start()执行之后,先不获得cup,等主线程中断或执行完毕,t1线程才获得cup的使用权
上面两种说法那种对,能给讲讲多线程怎么执行的吗?为什么会有多种不同的结果?多线程可不可以控制的像流程语句一样?

------解决方案--------------------
探讨
两种都有可能~因为线程的调用是由cpu来决定的~start()方法只是把线程加载到runnable池~使得线程进入可运行状态~但是哪个线程先运行是随机的~
不过你可以通过设置优先级来使哪个线程先执行~优先级越高的线程就越早执行~