当前位置:七道奇文章资讯编程技术Java编程
日期:2011-01-26 02:54:00  来源:本站整理

Java多线程初学者指南(7):向线程传送数据的三种办法[Java编程]

赞助商链接



  本文“Java多线程初学者指南(7):向线程传送数据的三种办法[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

    在传统的同步开辟情势下,当我们调用一个函数时,通过这个函数的参数将数据传入,并通过这个函数的返回值来返回终究的计算后果.但在多线程的异步开辟情势下,数据的传送和返回和同步开辟情势有很大的辨别.由于线程的运行和完毕是不可意料的,因此,在传送和返回数据时就无法象函数一样通过函数参数和return语句来返回数据.本文就以上缘由介绍了几种用于向线程传送数据的办法,在下一篇文章中将介绍从线程中返回数据的办法.

    欲先取之,必先予之.普通在利用线程时都需求有一些初始化数据,然后线程操纵这些数据举行加工处理,并返回后果.在这个历程中最早要做的就是向线程中传送数据.

    1、通过构造办法传送数据

    在成立线程时,必必要成立一个Thread类的或其子类的实例.因此,我们不难想到在调用start办法之前通过线程类的构造办法将数据传入线程.并将传入的数据利用类变量保存起来,以便线程利用(其实就是在run办法中利用).下面的代码演示了若何通过构造办法来传送数据:

package mythread;

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();       
    }
}

    由于这种办法是在成立线程对象的同时传送数据的,因此,在线程运行之前这些数据就就已经到位了,这样就不会造成数据在线程运行后才传入的现象.假如要传送更复杂的数据,可以利用调集、类等数据构造.利用构造办法来传送数据固然对比安全,但假如要传送的数据对比多时,就会造成很多不便.由于Java没有默许参数,要想实现近似默许参数的效果,就得利用重载,这样不但使构造办法本身过于复杂,又会使构造办法在数目上大增.因此,要想避免这种情形,就得通过类办法或类变量来传送数据.

    2、通过变量和办法传送数据

    向对象中传入数据普通有两次机会,第一次机会是在成立对象时通过构造办法将数据传入,别的一次机会就是在类中定义一系列的public的办法或变量(也可称之为字段).然后在成立完对象后,通过对象实例一一赋值.下面的代码是对MyThread1类的改版,利用了一个setName办法来设置name变量:

package mythread;

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();
    }
}


  以上是“Java多线程初学者指南(7):向线程传送数据的三种办法[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 利用Javascript实现网页水印(非图片水印)
  • Java开辟环境的搭建
  • Ubuntu java安装与配置
  • 办理Ubuntu 10.04 Firefox3.6 Java浏览器插件不工作的问
  • Ubuntu重装后Java环境的设置
  • Sun Java进入Ubuntu 10.10软件中央
  • Ubuntu 10.10配置Java开辟环境
  • 在Ubuntu 10.10中配置Java环境变量的办法
  • Ubuntu下Java环境的搭建
  • Ubuntu 10.04 下安装 Java, JRE
  • Ubuntu 10.04下的搭建SUN JAVA开辟环境
  • Ubuntu 12.04安装java7
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .