java实现Runnable接口的类在主类中为什么可以直接声明Thread的对象

时间:2022-02-22 17:28:38
// Create multiple threads.
class NewThread implements Runnable {
    String name; // name of thread
    Thread t;//我的问题就是这个。这没有Thread的类,怎么可以直接声明Thread的对象呢?
    NewThread(String threadname) {
        name = threadname;
        t = new Thread(this, name);
        System.out.println("New thread: " + t);
        t.start(); // Start the thread
    }

    // This is the entry point for thread.
    public void run() {
        try {
            for(int i = 5; i > 0; i--) {
               System.out.println(name + ": " + i);
               Thread.sleep(1000);
            }
        } catch (InterruptedException e) {
            System.out.println(name + "Interrupted");
        }
        System.out.println(name + " exiting.");
    }
}

class MultiThreadDemo {
    public static void main(String args[]) {
        new NewThread("One"); // start threads
        new NewThread("Two");
        new NewThread("Three");
        try {
            // wait for other threads to end
            Thread.sleep(10000);
        } catch (InterruptedException e) {
            System.out.println("Main thread Interrupted");
        }
        System.out.println("Main thread exiting.");
    }
}

初学大家见谅

6 个解决方案

#1


Thread是java.lang里定义的类
所以java.lang.Thread不用import也可以直接使用

#2


引用 1 楼 Android_iPhone 的回复:
Thread是java.lang里定义的类
所以java.lang.Thread不用import也可以直接使用
你的意思就是说Thread相当于String那样吗?

#3


就好像 你直接创建一个Student的类,在这个类中import导入,可以先声明,之后在new一样,1楼说对,只是不用导入而已

#4


还是不太明白

#5


引用 2 楼 zhaominpro 的回复:
Quote: 引用 1 楼 Android_iPhone 的回复:

Thread是java.lang里定义的类
所以java.lang.Thread不用import也可以直接使用
你的意思就是说Thread相当于String那样吗?


对,还有啥不明白的?

#6


Thread是类库里的类,并不是自定义类,它输入java.lang.*包的,java默认会导入这个包,所以直接可以声明并且可以创建对象。

#1


Thread是java.lang里定义的类
所以java.lang.Thread不用import也可以直接使用

#2


引用 1 楼 Android_iPhone 的回复:
Thread是java.lang里定义的类
所以java.lang.Thread不用import也可以直接使用
你的意思就是说Thread相当于String那样吗?

#3


就好像 你直接创建一个Student的类,在这个类中import导入,可以先声明,之后在new一样,1楼说对,只是不用导入而已

#4


还是不太明白

#5


引用 2 楼 zhaominpro 的回复:
Quote: 引用 1 楼 Android_iPhone 的回复:

Thread是java.lang里定义的类
所以java.lang.Thread不用import也可以直接使用
你的意思就是说Thread相当于String那样吗?


对,还有啥不明白的?

#6


Thread是类库里的类,并不是自定义类,它输入java.lang.*包的,java默认会导入这个包,所以直接可以声明并且可以创建对象。