简体   繁体   English

如何将 CountDownLatch object 传递给线程的构造函数?

[英]How can a CountDownLatch object be passed to the constructor of a Thread?

I was studying Threads in Java and I saw that Threads have the following types of constructors.我在 Java 中研究线程,我看到线程有以下类型的构造函数。

Thread()线()
Thread(Runnable target)线程(可运行目标)
Thread(Runnable target, String name)线程(可运行目标,字符串名称)
Thread(String name): Allocates a new Thread object线程(字符串名称):分配一个新线程 object
Thread(ThreadGroup group, Runnable target)线程(线程组组,可运行目标)
Thread(ThreadGroup group, Runnable target, String name)线程(线程组组、可运行目标、字符串名称)
Thread(ThreadGroup group, Runnable target, String name, long stackSize) Thread(ThreadGroup group, Runnable target, String name, long stackSize)
Thread(ThreadGroup group, String name)线程(线程组组,字符串名称)

But while trying out a few sample programs, I saw that the below code does not give any error:但是在尝试一些示例程序时,我看到下面的代码没有给出任何错误:

class MyThread implements Runnable {
String name;
CountDownLatch cdl;

MyThread(CountDownLatch cdl, String name) {
    this.name = name;
    this.cdl = cdl;
    new Thread(this);
}   

So, more specifically, what is the line new Thread(this) doing?那么,更具体地说, new Thread(this)这一行在做什么?

The code is actually not a Thread but a Runnable object.该代码实际上不是Thread ,而是可运行的Runnable So new Thread(this) means constructing a new Thread object given with constructor argument a Runnable object ( MyThread itself).所以new Thread(this)意味着构造一个新的Thread object 给定的构造函数参数Runnable object ( MyThread本身)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM