如何向Java线程传递一个参数?

谁能建议我如何向线程传递一个参数?

另外,对于匿名类,它是如何工作的?

通过Runnable或Thread类的构造函数

class MyThread extends Thread {

    private String to;

    public MyThread(String to) {
        this.to = to;
    }

    @Override
    public void run() {
        System.out.println("hello " + to);
    }
}

public static void main(String[] args) {
    new MyThread("world!").start();
}
评论(3)

要么写一个实现Runnable的类,并在适当定义的构造函数中传递你所需要的东西,要么写一个扩展Thread的类,并有一个适当定义的构造函数,用适当的参数调用super()。

评论(0)

你可以从Runnable派生出一个类,并在构造过程中(比如)把参数传进去。

然后用Thread.start(Runnable r)来启动它。

如果你指的是在线程运行时,那么只需在调用线程中持有一个派生对象的引用,并调用适当的setter方法(在适当的地方进行同步)

评论(0)