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