首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

(札记)有关thread的相关知识之2-运行顺序

2012-11-08 
(笔记)有关thread的相关知识之2---运行顺序example1:package Threadpublic class TestThread6 {public st

(笔记)有关thread的相关知识之2---运行顺序
example1:
package Thread;
public class TestThread6 {
public static void main(String args[]){
Thread t = new Runner6();
   t.start();

for(int i=0; i<3; i++) {
System.out.println("MainThread: " + i);
}
  }
}

class Runner6 extends Thread {
public void run() {
System.out.println(Thread.currentThread().isAlive());
for(int i=0;i<3;i++) {
System.out.println("SubThread: " + i);
}
}
}

---输出结果---
MainThread: 0
MainThread: 1
MainThread: 2
true
SubThread: 0
SubThread: 1
SubThread: 2

example2:

package Thread;
public class TestThread5 {
public static void main(String args[]){
Runner5 r = new Runner5();
       Thread t = new Thread(r);
        t.start();
       
        try{
        t.join();
        }catch(InterruptedException e){
        }
       
        for(int i=0;i<3;i++){
        System.out.println("主线程:" + i);
        }
    }
}

class Runner5 implements Runnable {
public void run() {
for(int i=0;i<3;i++) {
System.out.println("SubThread: " + i);
}
}
}
---输出结果---
SubThread: 0
SubThread: 1
SubThread: 2
主线程:0
主线程:1
主线程:2

对比发现在执行thread的时候,先执行Main中的数据,然后执行thread中的run方法。而在example2中会发现,是先执行Thread中的run方法然后执行main中的方法,原因是适应的thread中的join()方法。此处值得注意。

热点排行