Board logo

標題: 執行緒 (四) - 匿名式內部類別 [打印本頁]

作者: 周政輝    時間: 2018-5-19 11:04     標題: 執行緒 (四) - 匿名式內部類別

使用匿名式內部類別,繼承Thread類別,建立執行緒。
[attach]4115[/attach]
作者: 蔡季樺    時間: 2018-5-19 11:31

  1. public class Main {

  2.         public static void main(String[] args) {
  3.                 // TODO 自動產生的方法 Stub
  4.                 test();
  5.                 test2();
  6.                

  7.         }
  8.         public static void test()
  9.         {
  10.                 Thread t = new Thread()
  11.                 {
  12.                         public void run()
  13.                         {
  14.                                 for(int i=5;i>=1;i--)
  15.                                 {
  16.                                         System.out.println(i+"秒!"+Thread.currentThread().getName());
  17.                                         try {
  18.                                                 Thread.sleep(1000);
  19.                                         } catch (InterruptedException e) {
  20.                                                 // TODO 自動產生的 catch 區塊
  21.                                                 e.printStackTrace();
  22.                                         }
  23.                                 }
  24.                                 System.out.println("時間到!"+Thread.currentThread().getName());
  25.                         }
  26.                 };
  27.                 t.start();
  28.         }
  29.         public static void test2()
  30.         {
  31.                 Thread t2 = new Thread()
  32.                 {
  33.                         public void run()
  34.                         {
  35.                                 for(int i=1;i<=5;i++)
  36.                                 {
  37.                                         System.out.println(i+"秒!"+Thread.currentThread().getName());
  38.                                         try {
  39.                                                 Thread.sleep(1000);
  40.                                         } catch (InterruptedException e) {
  41.                                                 // TODO 自動產生的 catch 區塊
  42.                                                 e.printStackTrace();
  43.                                         }
  44.                                 }
  45.                                 System.out.println("時間到!"+Thread.currentThread().getName());
  46.                         }
  47.                 };
  48.                 t2.start();
  49.         }
  50. }
複製代碼

作者: 林侑成    時間: 2018-5-19 11:39

  1. package qwer;

  2. public class Qwer {

  3.         public static void main(String[] args)
  4.         {                        
  5.                 a();
  6.                 a2();
  7.         }
  8.         public static void a(){
  9.                 Thread a = new Thread()
  10.                 {
  11.                      public void run()
  12.                                {
  13.                                       for(int i=5 ; i>=1 ; i--)
  14.                                       {
  15.                                             System.out.println(i+"秒"+Thread.currentThread().getName());
  16.                                             try {
  17.                                                       Thread.sleep(1000);
  18.                                                 }
  19.                                                 catch (InterruptedException e) {
  20.                                                       // TODO 自動產生的 catch 區塊
  21.                                                       e.printStackTrace();
  22.                                                  }
  23.                                       }
  24.                                       System.out.println("時間到!"+Thread.currentThread().getName());
  25.                                }
  26.                 };
  27.                  a.start();
  28.         }
  29.         public static void a2()
  30.         {
  31.                 Thread a2 = new Thread()
  32.                 {
  33.                      public void run()
  34.                                 {
  35.                                      for(int i=1 ; i<=5 ; i++)
  36.                                      {
  37.                                             System.out.println(i+"秒"+Thread.currentThread().getName());
  38.                                             try {
  39.                                                       Thread.sleep(1000);
  40.                                                 }
  41.                                             catch (InterruptedException e) {
  42.                                                       // TODO 自動產生的 catch 區塊
  43.                                                       e.printStackTrace();
  44.                                                 }
  45.                                      }
  46.                      System.out.println("時間到!"+Thread.currentThread().getName());
  47.                                 }
  48.             };
  49.             a2.start();
  50.         }
  51. }
複製代碼

作者: 陳泓瑜    時間: 2018-5-19 11:44

  1. package tw.kuas.edu.tw;

  2. public class Main {

  3.         public static void main(String[] args) {
  4.                 // TODO 自動產生的方法 Stub
  5.         Thread_0();
  6.                 Thread_1();
  7.         }
  8.     public static void Thread_0()
  9.     {
  10.         Thread_0 thread0 = new Thread_0()
  11.         {
  12.                 public void run()
  13.                 {
  14.                         for(int i=5; i>=0; i--)
  15.                         {
  16.                                 try {
  17.                                         System.out.printf("%d sec at %s \n",i,Thread.currentThread());
  18.                                         Thread.sleep(1000);
  19.                                 } catch (InterruptedException e) {
  20.                                         // TODO 自動產生的 catch 區塊
  21.                                         e.printStackTrace();
  22.                                 }
  23.                         }
  24.                        
  25.                 }              
  26.         };
  27.         thread0.start();

  28.     }

  29.    
  30.     public static void Thread_1()
  31.     {
  32.             Thread_1 thread1 = new Thread_1()
  33.             {
  34.             public void run()
  35.             {
  36.                     for(int i=1; i<=5; i++)
  37.                     {                       
  38.                             try {
  39.                                     System.out.printf("%d sec at %s \n",i,Thread.currentThread());
  40.                                     Thread.sleep(1000);
  41.                             } catch (InterruptedException e) {
  42.                                     // TODO 自動產生的 catch 區塊
  43.                                     e.printStackTrace();
  44.                             }
  45.                     }
  46.             }
  47.     };
  48.    
  49.     thread1.start();
  50. }}
複製代碼

作者: 蔡庭豪    時間: 2018-5-23 17:57

  1. package bbs.istak.org.tw;

  2. import java.io.IOException;

  3. public class test {

  4.         public static void main (String[] arg0) throws InterruptedException, IOException{
  5.                 tick();
  6.                 tok();
  7.                
  8.         }
  9.        
  10.         public static void tick(){
  11.                
  12.                
  13.                 Thread t1 = new Thread(){
  14.                        
  15.                         public void run(){
  16.                                
  17.                                 Thread.currentThread().setName("tick " );
  18.                                
  19.                         for(int i = 10 ; i > 0 ; i--){
  20.                                
  21.                                 System.out.println(i+"s "+Thread.currentThread().getName());
  22.                                 try {
  23.                                         Thread.sleep(1000);
  24.                                 } catch (InterruptedException e) {
  25.                                         // TODO 自動產生的 catch 區塊
  26.                                         e.printStackTrace();
  27.                                 }
  28.                                
  29.                         }
  30.                         System.out.println(Thread.currentThread().getName()+" FINISH");
  31.                        
  32.                        
  33.                         }
  34.                 };
  35.                 t1.start();
  36.                
  37.         }
  38.        
  39.         public static void tok(){
  40.                
  41. Thread t2 = new Thread(){
  42.                        
  43.                         public void run(){
  44.                                
  45.                                 Thread.currentThread().setName("tok ");
  46.                                
  47.                         for(int i = 10 ; i > 0 ; i--){
  48.                                
  49.                                 System.out.println(i+"s "+Thread.currentThread().getName());
  50.                                 try {
  51.                                         Thread.sleep(1000);
  52.                                 } catch (InterruptedException e) {
  53.                                         // TODO 自動產生的 catch 區塊
  54.                                         e.printStackTrace();
  55.                                 }
  56.                                
  57.                         }
  58.                         System.out.println(Thread.currentThread().getName()+" FINISH");
  59.                        
  60.                        
  61.                         }
  62.                 };
  63.                 t2.start();
  64.         }
  65. }
複製代碼

作者: 張健勳    時間: 2018-5-25 19:24

  1. package bbs.istak.org.tw;

  2. public class Main {

  3.         Main()
  4.         {
  5.                
  6.                 show1();
  7.                 show2();
  8.                
  9.        
  10.                
  11.         }
  12.         void show1()
  13.         {
  14.                 Thread th = new Thread(){
  15.                         public void run()
  16.                         {
  17.                                 for( int i=5; i>=1; i--)
  18.                                 {
  19.                                         try {
  20.                                                 Thread.sleep(1000);
  21.                                         } catch (InterruptedException e) {
  22.                                         }
  23.                                        
  24.                                         System.out.println(i+"秒"+Thread.currentThread().getName());
  25.                                 }
  26.                                 System.out.println("Time Out!!!");
  27.                                 System.out.println("執行緒名稱:"+Thread.currentThread().getName());
  28.         }
  29.                        
  30.         void show2 ()
  31.         {
  32.                 Thread th = new Thread(){
  33.                 public void run()
  34.                 {
  35.                         for( int i=5; i>=1; i--)
  36.                         {
  37.                                 try {
  38.                                         Thread.sleep(1000);
  39.                                 } catch (InterruptedException e) {
  40.                                 }
  41.                                
  42.                                 System.out.println(i+"秒"
  43.                                                 +Thread.currentThread().getName());
  44.                         }
  45.                         System.out.println("Time Out!!!");
  46.                         System.out.println("執行緒名稱:"+Thread.currentThread().getName());

  47.                 }
  48.                 }
  49.                
  50.         ;
  51.         }
  52.        
  53.         public static void main(String[] args) {
  54.                         new Main();
  55.         }
  56. }
複製代碼

作者: 黃茂勛    時間: 2018-5-26 13:01

  1. package bbs.istak.org.tw;

  2. public class Main {

  3.         public static void main(String[] args) {
  4.                 T1();
  5.                 T2();
  6.         }
  7.     public static void T1()
  8.     {
  9.             Thread t = new Thread()
  10.             {
  11.                     public void run()
  12.                     {
  13.                             for(int i=5; i>=1; i--)
  14.                             {
  15.                                     System.out.println(i+"秒 "+Thread.currentThread().getName());
  16.                                     try {
  17.                                                 Thread.sleep(1000);
  18.                                         } catch (InterruptedException e) {
  19.                                                 // TODO 自動產生的 catch 區塊
  20.                                                 e.printStackTrace();
  21.                                         }
  22.                             }
  23.                             System.out.println("時間到! "+Thread.currentThread().getName());
  24.                     }
  25.             };
  26.             t.start();
  27.     }
  28.     public static void T2()
  29.     {
  30.             Thread t = new Thread()
  31.             {
  32.                     public void run()
  33.                     {
  34.                             for(int i=1; i<=5; i++)
  35.                             {
  36.                                     System.out.println(i+"秒 "+Thread.currentThread().getName());
  37.                                     try {
  38.                                                 Thread.sleep(1000);
  39.                                         } catch (InterruptedException e) {
  40.                                                 // TODO 自動產生的 catch 區塊
  41.                                                 e.printStackTrace();
  42.                                         }
  43.                             }
  44.                             System.out.println("時間到! "+Thread.currentThread().getName());
  45.                     }
  46.             };
  47.             t.start();
  48.     }
  49. }
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/) Powered by Discuz! 7.2