1. 程式人生 > >java向多執行緒中傳遞引數

java向多執行緒中傳遞引數

1:通過構造方法傳遞引數

public class MyThread1 extends Thread 

          private String name; 
          public MyThread1(String name) //構造方法
         { 
                   this.name = name; 
          } 
          public void run() 
         { 
                   System.out.println("hello " + name); 
         } 
        public static void main(String[] args) 


      { 
                    Thread thread = new MyThread1("world"); 
                    thread.start(); 
         } 

2:通過方法和變數傳遞資料

public class MyThread2 implements Runnable 

          private String name; 
          public void setName(String name) 
         { 
                 this.name = name; 
         } 


        public void run() 
       { 
                System.out.println("hello " + name); 
       } 
        public static void main(String[] args) 
      { 
             MyThread2 myThread = new MyThread2(); 
             myThread.setName("world"); 
            Thread thread = new Thread(myThread); 
            thread.start(); 

          } 

3:通過回撥函式傳遞引數

class Data 

         public int value = 0; 

class Work 

            public void process(Data data, Integer numbers) 
          { 
                          for (int n : numbers) 
                         { 
                                    data.value += n; 
                         } 
            } 

public class MyThread3 extends Thread 

              private Work work; 
              public MyThread3(Work work) 
            { 
                     this.work = work; 
             } 
            public void run() 
            { 
                    java.util.Random random = new java.util.Random(); 
                    Data data = new Data(); 
                     int n1 = random.nextInt(1000); 
                    int n2 = random.nextInt(2000); 
                     int n3 = random.nextInt(3000); 
                     work.process(data, n1, n2, n3); // 使用回撥函式 
                      System.out.println(String.valueOf(n1) + "+" + String.valueOf(n2) + "+" 
                     + String.valueOf(n3) + "=" + data.value); 
              } 
              public static void main(String[] args) 
             { 
                             Thread thread = new MyThread3(new Work()); 
                              thread.start(); 
               }