您的位置:首页 > 编程语言 > Java开发

java向多线程中传递参数

2016-06-13 14:57 615 查看
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(); 
               } 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  线程