java runnable线程如何传参?

Python026

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实例传入了一个字符串参数

java两个线程之间可以通过使用全局变量,然后使用set和get方法就可以传递变量,实例如下:

public static String pub=""

public static void main(String[] args) {

final Thread t2=new Thread(){

@Override

public void run() {

//打印线程1传递过来的值

System.out.println(pub)

}

}

Thread t1=new Thread(){

@Override

public void run() {

String thread1="thread1"

//将值thread1传递给线程2

pub=thread1

t2.start()

}

}

t1.start()

}