首先看一下Runnable接口的源码,整个方法体里就只有一个run的抽象方法,所以才创建实现类实现该接口的时候是肯定要重写接口内的抽象方法的(也就是run()方法),按照重写规则(不能是抽象,参数要和父类一致,也就是无参)重写run()方法,方法体就可以自定义添加了。

@FunctionalInterface
public interface Runnable {/*** When an object implementing interface <code>Runnable</code> is used* to create a thread, starting the thread causes the object's* <code>run</code> method to be called in that separately executing* thread.* <p>* The general contract of the method <code>run</code> is that it may* take any action whatsoever.** @see     java.lang.Thread#run()*/public abstract void run();
}

但是我在百度上找到了这么一个题

能看到run()方法的参数是Thread t,并不是无参但是能够成功运行,以下是run()方法可以带参的情况:

要实现带参数的run()方法

  1. 定义线程内变量;
  2. 在继承thread的时候,增加带参数的构造函数,初始化线程内变量;
  3. 在run方法操作线程内变量,以达到类似传参的效果。

示例:

class MyThread extends Thread{int a = 0;//定义线程内变量public MyThread(int a){//定义带参数的构造函数,达到初始化线程内变量的值this.a=a;}@Overridepublic void run() {this.a++;//线程内变量自增}
}

引用一位网友的回答补充说明

线程的run()方法带参情况相关推荐

  1. java多线程run方法传参

    我们知道多线程是通过star()方法让线程处于准备就绪状态,而实际运行的业务逻辑是放在run()方法体中的,但是run()方法是没有参数的方法,实际的业务场景中,我们可能需要向方法体中传递参数,下面介 ...

  2. java反射调用某个类的方法(带参或不带参)

    Class类: public getDeclaredMethod( name,                                  <?>... parameterTypes ...

  3. 并发基础篇(六):线程Thread类的start()方法和run()方法

    点个赞,看一看,好习惯!本文 GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了 3 个月总结的一线大厂 Java 面试总结,本 ...

  4. java线程立刻执行_Java 线程调用start()后会立即执行run()方法吗?

    别想当然 问题 Java 线程调用start()后会立即执行run()方法吗? 我们在开发中,经常和线程打交道,有些东西总是司空见惯,想当然地认为某些事情理所当然... 但是今天偶然发现一个有趣的现象 ...

  5. 线程Thread类的start()方法和run()方法

    一.初识 java的线程是通过java.lang.Thread类来实现的.VM启动时会有一个由主方法所定义的线程.可以通过创建Thread的实例来创建新的线程.每个线程都是通过某个特定Thread对象 ...

  6. obj是什么意思_为什么start方法会调用run方法?(为什么不能直接run来实现创建线程?)...

    我们知道再创建线程的时候是使用Thread类中的start方法,那么为什么不直接用Thread类中的run方法呢? 来直接上源码: Thread中的run方法如下. 那么target是什么呢? 我们可 ...

  7. 为什么重新new两个线程线程号相同_面试官每次问我关于线程间通信方法,我都回答的很糟糕...

    线程的生命周期 废话不多写.首先我们先回顾回顾,理解下线程的生命周期,以及不同的阶段的区别: 新建状态(NEW) 当程序使用new关键字创建了一个线程之后,该线程就处于新建状态,此时仅由JVM为其分配 ...

  8. java线程三种方法,Java基础_线程的使用及创建线程的三种方法

    线程:线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务. 进程:进 ...

  9. java Thread的start和run方法的区别

    一.认识Thread的 start() 和 run() 概述: t.start()会导致run()方法被调用,run()方法中的内容称为线程体,它就是这个线程需要执行的工作. 用start()来启动线 ...

最新文章

  1. 悟空分词的搜索和排序源码分析之——搜索
  2. mongodb 的使用场景和不适合使用的场景
  3. 百米路由器2登陆地址_女孩子也要会的无线路由器连接技巧,再也不求男生了...
  4. [APIO2018] Duathlon 铁人两项
  5. Vue008_ Vue实例生命周期
  6. JS----面试题总结(持续更新中......)
  7. ORACLE数据库导出导入数据
  8. 挣扎 7 年,苹果 Siri 还是被“抛弃”了
  9. 【题解】洛谷P4158 [SCOI2009] 粉刷匠(DP)
  10. caffe的googlenet模型使用
  11. 微信小程序抓包-夜神模拟器结合BurpSuite抓包(可用于现在最新版本微信)
  12. 利用D盘内存给C盘扩容
  13. 关于 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B) 的 解决方法
  14. 竞赛大佬在华为:网络专家出身斯坦福物理系,还有人“工作跟读博差不多”...
  15. Mysql,姓名按笔画排序
  16. 关于四阶魔方中心块还原
  17. 杜比介绍 杜比数位 Dolby
  18. 各版本 DOTween 下载地址
  19. linux操作系统---信号
  20. kmeans初始中心不同结果可能不同 (举例)

热门文章

  1. java实现分页打印功能_web 页面分页打印的实现
  2. 塔拉 孤岛危机2_2月15日新作密集周Xbox游戏热度排行公布《Apex英雄》登顶《除暴战警3》战役模式名列前3...
  3. java 反射内部匿名内部类_android-反射的使用(反射静态内部类、非静态内部类、匿名内部类等)...
  4. python中eps参数_2019-01-23 python PIL 编辑 EPS 文件调整大小并拼接-失败告终
  5. key map 模糊查找_lua脚本语言批量删除模糊查询的key
  6. thinkphp四种url访问方式详解
  7. ios中的视频采集及参数设置和相机操作
  8. 堆内存破坏检测实战--附完整调试过程
  9. ”盒模型“之如何防止边框和内边距把元素撑开
  10. WMAP环境上传图片报错【找不到临时文件夹】解决方案