java - 关于线程和对象创建

标签 java multithreading

假设您有一个具有构造函数的类 MyClass

public Myclass(SomeObject o)

Myclass,另外还有一个方法public void doSomethingCleverWith(String s)

我希望 MyClass 作为 Thread 执行,所以我

Thread t = new Thread(new MyClass(SomeObject));

执行此线程时,无论如何run,都需要调用doSomethingCleverWith(String)。然而,运行(据我所知)不接受任何参数。

您建议我如何处理这个问题? String 应该成为 MyClass 构造函数的一部分吗?我可以做点别的吗?

最佳答案

您不在线程上执行对象 - 您在线程上执行代码... run() 指定的代码您传递给 Thread 的可运行对象的方法构造函数,假设您这样做。

目前还不清楚您要做什么,但听起来您可能需要将额外信息(字符串)传递给 MyClass 的构造函数...或者以不同的方式执行它,例如:

final MyClass tmp = new MyClass(SomeObject));
Thread t = new Thread(new Runnable() {
    @Override public void run() {
        tmp.doSomethingCleverWithString(someValueHere);
    }
});

如果您明确自己想要实现的目标,我们也许能够为您提供更多帮助。

关于java - 关于线程和对象创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8792840/

相关文章:

java 数组列表

java - 使用枚举实现单例(Java 中)

c - powerpc 交叉编译器的 pthread_equal() 替代方案?

python-3.x - 如何使多个对象同时工作?

java - 有序队列的多线程消费

java - 当我使用 Reference 类时会发生什么以及多少开销?

java - 在异步任务中不断出现空指针异常

java - 通过 JDBC 连接到数据库

java - 如何创建包含非英语项目的抽屉导航?

database - SQLite3 的线程安全性如何?