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

}

}

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

java runnable 参数_Java向Runnable线程传递参数方法实例解析相关推荐

  1. java forname 原理_Java Class.forName()用法和newInstance()方法原理解析

    Class.forName()主要功能 Class.forName(xxx.xx.xx)返回的是一个类, Class.forName(xxx.xx.xx)的作用是要求JVM查找并加载指定的类,也就是说 ...

  2. java反转数组_Java实现数组反转翻转的方法实例

    数组翻转的方法(java实现),数组翻转,就是将数组倒置,例如原数组为:{"a","b","c","d"},那么翻转后的 ...

  3. java condition详解_Java使用Condition控制线程通信的方法实例详解

    Java使用Condition控制线程通信的方法实例详解 发布于 2020-4-20| 复制链接 摘记: 本文实例讲述了Java使用Condition控制线程通信的方法.分享给大家供大家参考,具体如下 ...

  4. Java之List系列--ArrayList保证线程安全的方法

    原文网址:Java之List系列--ArrayList保证线程安全的方法_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Java中的ArrayList.LinkedList如何进行线程安全的操作.为 ...

  5. java runnable 启动_Java多线程:线程的创建与启动

    # 面试题: Java中创建线程有几种方式. 不同的创建方式有什么区别. 如何启动一个线程. # Java中创建线程的方式 JDK源码中的描述:两种 image.png 第一种是继承Thread类,重 ...

  6. java 封闭类型_Java并发之线程封闭

    读者们好! 在这篇博客中,我们将探讨线程封闭是什么意思,以及我们如何实现它. 所以,让我们直接开始吧. 1. 线程封闭 大多数的并发问题仅发生在我们想要在线程之间共享可变变量或可变状态时.如果在多个线 ...

  7. 线程池传递对象参数_一次线程池参数错误引起的线上故障

    在JAVA里,我们通常会把没有前后依赖关系的逻辑操作扔到多个线程里并行执行,以提高代码运行效率. 同时,我们一般也不会单独显式创建线程,而是通过线程池设置线程.使用线程池的好处是减少在创建和销毁线程上 ...

  8. java还值_Java到底是引用传递还是值传递

    前言 前段时间在群里看到类似这样一个问题,下面的代码会输出什么呢? public void test(){ String str = "hello"; change(str); S ...

  9. java 静态方法 多线程_Java静态方法的线程安全性问题

    如果多个线程同时访问同一个静态方法,后一个线程传递的参数值会覆盖前一个线程传递的参数值吗?代码示例如下: 被访问的静态资源: public class C { public static void t ...

最新文章

  1. dede count.php,dede中怎么统计栏目文章数
  2. ABAP物料仓位扩充
  3. Flash常用快捷键大全 (hotkey)
  4. python编写脚本替换 jar包文件_shell-替换jar包中配置文件脚本
  5. html提现页面模板,提现记录.html
  6. [转] css3变形属性transform
  7. linux mount nfs 超时,I / O无法(偶尔)挂载NFS-服务器超时
  8. bzoj 3261: 最大异或和
  9. 淘宝APP购物车测试用例
  10. Python识别中国工作日,节假日,调休日。—已更新2022年
  11. 【QT学习教程1】制作用户登陆界面
  12. Elasticsearch 父子关系
  13. Python——程序设计:商贷月供计算器!谁还没点月供了!
  14. python统计套利_【独家发布】期货市场内外盘低频统计套利基于Python
  15. 实用的Word文档翻译方法分享,让Word文档快速翻译
  16. 小程序获取微信绑定的手机号
  17. 动态规划(Dynamic Programing)背包——01背包
  18. jQuery - fadeIn淡入效果
  19. python sort多条件排序
  20. 闲鱼触达系统背后——我想更懂你

热门文章

  1. 表面材质的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  2. 终于有好心的人把高性能MySQL「第三版」电子版分享出来了
  3. PowerPC uboot交叉编译环境搭建说明
  4. 辐射3游戏登录是提示计算机丢失xlive.dll文件,玩辐射3提示丢失xlive.dll怎么办 辐射3丢失xlive.dll的解决方法...
  5. 华为云城市峰会这三年,见证城市从“智变”到“质变”
  6. python list列表排序求索引
  7. mts文件怎么转成mp4格式?
  8. Vue初学——计算属性Computed和Methods
  9. Mac修改程序软件图标(附带抠图教程)
  10. gnu嵌入汇编,内嵌汇编详细的介绍