首页 > 解决方案 > 在创建线程时,我们在构造函数中传递的参数包含(this)为什么要使用它?

问题描述

我是编程新手。在创建线程时,为什么我们将(this)作为参数传递?

private Thread filePuller = null;

filePuller = new Thread(this, "FilePuller");

标签: javamultithreading

解决方案


这里发生的是您显式地实例化Thread类并将当前类的实例传递给新线程。有关详细信息,请参阅此 Javadoc以获取有关该构造函数的详细信息。您当前的对象是Runnable接口的一个实例(您应该能够通过检查类开始的代码来检查)。因此,稍后在您的代码中,当filePuller.start()可能调用时,它将调用当前类的run()方法。您应该能够run()在当前类的某处看到该方法的实现——无论是在同一个文件中还是在超类的代码中。希望有帮助。


推荐阅读