面试天坑_003_使用线程调用方法与直接调用方法完成某个任务的区别

 1 /*
 2 直接调用方法
 3 */
 4 package Process.Thread;
 5 
 6 public class DirectUse_To_FinishTask {
 7     public static void main(String[] args) {
 8         new DirectUse_To_FinishTask().testMethod();
 9     }
10 
11     public void testMethod() {
12         DesignThread t = new DesignThread();
13         int num=1;
14         t.run();
15         while (true) {
16             System.out.println("测试方法..."+num);
17             try {
18                 Thread.sleep(500);// 当前线程休眠0.5秒
19             } catch (InterruptedException e) {
20                 e.printStackTrace();
21             }
22             if(num++==5){
23                 break;
24             }
25         }
26     }
27 
28 }
29 
30 class DesignThread {
31     public void run() {
32         int num = 0;
33         while (true) {
34             System.out.println("自设线程..."+num);
35             try {
36                 Thread.sleep(500);// 当前线程休眠0.5秒
37             } catch (InterruptedException e) {
38                 e.printStackTrace();
39             }
40             if (num++ == 10) {
41                 break;
42             }
43         }
44     }
45 }

输出结果为

 

 1 /*
 2  (二)使用线程
 3 */
 4 package Process.Thread;
 5 
 6 public class ThreadUse_To_FinishTask {
 7     public static void main(String[] args) {
 8         new ThreadUse_To_FinishTask().testMethod();
 9     }
10 
11     public void testMethod() {
12         UseThread t = new UseThread();
13         int num = 1;
14         t.start();// 启动线程
15         while (true) {
16             System.out.println("testMethod线程启动..." + num);
17             try {
18                 Thread.sleep(500);// 当前线程休眠0.5秒
19             } catch (InterruptedException e) {
20                 e.printStackTrace();
21             }
22             if (num++ == 5) {
23                 break;
24             }
25         }
26     }
27 
28 }
29 
30 class UseThread extends Thread {
31     public void run() {
32         int num = 0;
33         while (true) {
34             System.out.println("UseThread重写线程..." + num);
35             try {
36                 Thread.sleep(500);// 当前线程休眠0.5秒
37             } catch (InterruptedException e) {
38                 e.printStackTrace();
39             }
40             if (num++ == 10) {
41                 break;
42             }
43         }
44     }
45 }

 

输出结果

 

posted on 2017-03-14 01:06  weizhang715  阅读(74)  评论(0)    收藏  举报

导航