java runnable线程如何传参?

Python015

java runnable线程如何传参?,第1张

Runnable里面没有传参函数,所以得自己造一个

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

public interface MyRunnable extends Runnable{

   public MyRunnable setParam(String... param)

}

实现这个自定义接口

MyRunnable sendMessage = new MyRunnable() {

    String message

    @Override

    public MyRunnable setParam(String... param) {

        message = param[0]

        return this

    }

    @Override

    public void run() {

        sendMessage(message)

    }

}

2.初始化线程池,运行Runnable

 ExecutorService cachedThreadPool = Executors.newCachedThreadPool()

 cachedThreadPool.execute(sendMessage.setParam("I am service"))

如上所示,线程池调用的一个runnable实例,这个runnable实例传入了一个字符串参数

擦,你在Runnable实现类中定义一个有参数的方法,然后run()方法去调用该方法不就好了

不就相当于run()方法传了参数,

执行方法是在线程的栈中压入方法帧,所以不存线程安全问题,速度给分

简单的很呵呵。