百科知识

向线程传递数据有什么方法?

2017-07-26 20:48:19提***
向线程传递数据有什么方法?向线程传递数据有什么方法?:欲先取之,必先予之。一般在使用线程时都需要有一些初始化数据,然后线程利用这些数据进行加工处理,并返回结果。在这个过程中最先要做的就是?

最佳回答

  •   欲先取之,必先予之。一般在使用线程时都需要有一些初始化数据,然后线程利用这些数据进行加工处理,并返回结果。在这个过程中最先要做的就是向线程中传递数据。 一、通过构造方法传递数据 在创建线程时,必须要建立一个Thread类的或其子类的实例。
      因此,我们不难想到在调用start方法之前通过线程类的构造方法将数据传入线程。并将传入的数据使用类变量保存起来,以便线程使用(其实就是在run方法中使用)。下面的代码演示了如何通过构造方法来传递数据: 1。package mythread; 2。
       3。public class MyThread1 extends Thread 4。{ 5。 private String name; 6。 7。 public MyThread1(String name) 8。 { 9。
       this。name = name; 10。 } 11。 public void run() 12。 { 13。 System。out。println("hello " + name); 14。 } 15。 public static void main(String[] args) 16。
       { 17。 Thread thread = new MyThread1("world"); 18。 thread。start(); 19。 } 20。} 由于这种方法是在创建线程对象的同时传递数据的,因此,在线程运行之前这些数据就就已经到位了,这样就不会造成数据在线程运行后才传入的现象。
      如果要传递更复杂的数据,可以使用集合、类等数据结构。使用构造方法来传递数据虽然比较安全,但如果要传递的数据比较多时,就会造成很多不便。由于Java没有默认参数,要想实现类似默认参数的效果,就得使用重载,这样不但使构造方法本身过于复杂,又会使构造方法在数量上大增。
      因此,要想避免这种情况,就得通过类方法或类变量来传递数据。
    2017-07-26 21:32:19
  • 很赞哦! (216)