本帖最后由 张立江 于 2012-7-21 21:34 编辑
- class MyThread extends Thread{
- public void run(){
- try {
- Thread./*currentThread().*/sleep(3000);
- } catch (InterruptedException e) {
- }
- System.out.println("MyThread running");
- }
- }
- public class ThreadTest{
- public static void main(String argv[]) {
- MyThread t = new MyThread();
- t.run();
- /*
- 1.调用了run()方法,并未开启线程,所以sleep3000毫秒之后并没有释放线程执行权,3000毫秒之后醒来,
- 继续执行打印语句.输出MyThread running.之后 该语句执行完毕.
- */
- t.start();
- /* 2.调用了start()方法,开启线程,于是sleep 3000毫秒,并释放了线程执行权.
- */4.3000毫秒之后,线程醒来,执行打印语句 MyThread running
- System.out.println("Thread Test");
- /*
- 3.因为t.run()已经执行完毕,所以是打印语句抢到了执行权,
- 于是输出Thread Test.之后语该语句执行完毕.
- */
- }
- }
复制代码 请大家写出分析过程
|