Java Runnable线程传参,实现让run访问参数

时间:2022-02-27 00:13:08

Java Runnable线程传参,让run访问参数

前言

做Android开发,可能经常要用到Runnable线程,有时候可能需要传参数进去,然后在run函数中取出参数使用。

解决办法

自定义一个接口,继承Runnable,新增一个传参方法

?
1
2
3
public interface MyRunnable extends Runnable {
   public MyRunnable setParam(String... param);
}

实现这个自定义接口

?
1
2
3
4
5
6
7
8
9
10
11
12
13
MyRunnable sendMessage = new MyRunnable() {
    String message;
    @Override
    public MyRunnable setParam(String... param) {
        message = param[0];
        return this;
    }
 
    @Override
    public void run() {
        sendMessage(message);
    }
};

Runnable实现参数传递

大家都知道Runnable()是无法传参数的,但是,有时候,我们提交任务的时候,是需要传递参数的,所以,为了解决这个问题

有以下的方法

这是,一个参数传递的设置接口,里面有一个设置参数的方法

?
1
2
3
public interface MyRunnable extends Runnable {
    public MyRunnable setParam(String param);
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public static void main(String[] args) {
    MyRunnable myRunnable = new MyRunnable() {
    // 新建接口,然后定义写实例变量;
        String string ;
        @Override
        public void run() {
            // 实现线程池的传参
            System.out.println(string);
        }
        @Override
        public MyRunnable setParam(String param) {
            string = param;
            return this;
        }
    };
    new Thread(myRunnable.setParam("aaa")).start();
}

在进行使用时,我们可以在新建MyRunnable的时候,实现run() 和 setParam()方法,将参数设置到String中

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://linxinfa.blog.csdn.net/article/details/106372686