Java向Runnable线程传递参数方法实例解析

 更新时间:2020年06月02日 12:03:41   作者:marvel_cheng  
这篇文章主要介绍了Java向Runnable线程传递参数方法实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

java Runnable接口:是一个接口,它里面只有一个run()方法,没有start()方法,继2113承Runnable并实现这个方法就可以实现多线程了,但是5261这个run()方法不能自4102己调用,必须由系统来调用。

向线程中传递数据的三种方法:

一、通过构造函数传递参数

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

二、通过变量和方法传递数据

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

三、通过回调函数传递数据

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • JavaEE多线程中阻塞队列的项目实践

    JavaEE多线程中阻塞队列的项目实践

    本文主要介绍了JavaEE多线程中阻塞队列的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-09-09
  • 教你几个 Java 编程中使用技巧

    教你几个 Java 编程中使用技巧

    枯燥的编程中总得有些乐趣,今天我们不谈论那些高深的技能,教你几个在编程中的奇技淫巧,说不定在某些时候还能炫耀一番呢,今天小编教你几个 Java 编程中使用技巧,感兴趣的朋友参考下吧
    2022-12-12
  • SpringBoot使用Netty实现远程调用的示例

    SpringBoot使用Netty实现远程调用的示例

    这篇文章主要介绍了SpringBoot使用Netty实现远程调用的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • Spring Boot加密配置文件特殊内容的示例代码详解

    Spring Boot加密配置文件特殊内容的示例代码详解

    这篇文章主要介绍了Spring Boot加密配置文件特殊内容的相关知识,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • Spring controller校验入参的方法详解

    Spring controller校验入参的方法详解

    项目中使用Springboot,在Controller中配置了@NotNull和@Valid,@Notnull不生效,@Valid生效,返回http status为400,本文给大家介绍了Spring controller校验入参的方法,需要的朋友可以参考下
    2024-06-06
  • 轻松掌握Java工厂模式、抽象工厂模式

    轻松掌握Java工厂模式、抽象工厂模式

    这篇文章主要帮助大家轻松掌握Java工厂模式、抽象工厂模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • 举例解析Java多线程编程中需要注意的一些关键点

    举例解析Java多线程编程中需要注意的一些关键点

    这篇文章主要介绍了Java多线程编程中需要注意的一些关键点,包括ThreadLocal变量与原子更新等一些深层次的内容,需要的朋友可以参考下
    2015-11-11
  • Intellij IDEA菜单栏不见了(Main Menu as Separate Toolbar)恢复菜单栏显示的解决办法

    Intellij IDEA菜单栏不见了(Main Menu as Separat

    有人问博主,关于Intellij IDEA菜单栏找不到了,被不小心的操作给隐藏了,怎么办?下面给大家分享解决方案,感兴趣的朋友跟随小编一起看看吧
    2024-06-06
  • Java 实现万年历总结

    Java 实现万年历总结

    这篇文章主要介绍了Java 万年历实现代码的相关资料,需要的朋友可以参考下
    2016-09-09
  • Java设计模式开发中使用观察者模式的实例教程

    Java设计模式开发中使用观察者模式的实例教程

    这篇文章主要介绍了Java设计模式开发中使用观察者模式的实例教程,松耦合和逻辑清晰的消息监听是观察者模式的大特色,需要的朋友可以参考下
    2016-04-04

最新评论