java runnable线程如何传参?

Python014

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

可以用Scoket套接字让服务器和客户端建立连接

可以根据Scoket对象的getInputStream()和getOutputStream()获得输入输出流

再往流里面写信息

就实现了简单的数据传递

当然等待数据

的时候会有阻塞现象

所以使用线程来保证数据不会因为等待而阻塞

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

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

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

简单的很呵呵。