搜索
首页 电脑/网络 软件 系统软件

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

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

全部回答

2017-07-26

50 0
    欲先取之,必先予之。一般在使用线程时都需要有一些初始化数据,然后线程利用这些数据进行加工处理,并返回结果。在这个过程中最先要做的就是向线程中传递数据。 一、通过构造方法传递数据 在创建线程时,必须要建立一个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没有默认参数,要想实现类似默认参数的效果,就得使用重载,这样不但使构造方法本身过于复杂,又会使构造方法在数量上大增。
  因此,要想避免这种情况,就得通过类方法或类变量来传递数据。

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
系统软件
硬件
电脑装机
程序设计
互联网
操作系统/系统故障
笔记本电脑
反病毒
百度
软件
软件
系统软件
多媒体软件
办公软件
网络软件
图像处理软件
系统软件
系统软件
举报
举报原因(必选):
取消确定举报