java - Java 中是否可以从其参数中的对象启动线程?

标签 java multithreading

在Java中可以做这样的事情吗?我只是想知道。

首先,我只是创建一个具有一个参数的新线程。

Thread thread = new Thread(new Person());

然后,在 Person() 的构造函数中我想启动该线程。 那么这样的事情可能吗?

public Person() {
    // Here belongs some code for the constructor and then
    // I would like to start the thread
}

最佳答案

不,你不能。在 Java 调用 Thread() 构造函数之前,它首先必须急切地计算所有参数,包括调用 Person() 构造函数。这意味着在调用 Person 构造函数时,外部 Thread 对象甚至不存在或尚未初始化,因此您无法真正使用它。

关于java - Java 中是否可以从其参数中的对象启动线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14614585/

相关文章:

c# - 根据其他线程的当前编程计数器锁定线程

python - Python 中的多线程 MD5 校验和

c++ - 如何卸载高度依赖于正确异常处理的计算繁重的任务?

java - getPath() 不返回斜杠? ( window )

java - 如何将MVP模式应用到android项目中

java - 无法安装 Android Studio(IDE 无法创建目录 Mac)

java - 完成线程 : should i ignore them?

c# - 执行序列中的异常行为。包括线程,异步和等待

java - 即使在 Struts 2.3.24 中添加 commons-lang3 库后也出现 NoClassDefFoundError

java - 双字段类型声明为零