Thread
类提供了几个常见的构造方法,用于创建和初始化线程。下面是 Thread
类的常见构造器及其说明:
✅ 1. Thread()
- 作用:创建一个新的线程,默认没有指定任务,也没有指定线程名称。
- 使用场景:当你想要自定义线程的任务时,通常通过继承
Thread
类并重写 run()
方法。
示例:
1 2
| Thread thread = new Thread(); thread.start();
|
✅ 2. Thread(Runnable target)
- 作用:创建一个新的线程并将指定的
Runnable
目标传递给线程。该线程会执行 Runnable
的 run()
方法中的任务。
- 使用场景:当线程的任务已经被实现为
Runnable
接口时,可以直接传递给 Thread
构造方法。
示例:
1 2 3
| Runnable task = () -> System.out.println("线程执行"); Thread thread = new Thread(task); thread.start();
|
✅ 3. Thread(String name)
- 作用:创建一个新的线程并指定线程名称。该线程将执行
run()
方法,线程名称默认为 Thread-0
、Thread-1
等。
- 使用场景:当你想为线程指定名称时,可以使用该构造方法。
示例:
1 2 3
| Thread thread = new Thread("自定义线程名称"); System.out.println("线程名称: " + thread.getName()); thread.start();
|
✅ 4. Thread(Runnable target, String name)
- 作用:创建一个新的线程并将指定的
Runnable
目标传递给线程,同时为线程指定一个名称。该线程将执行 Runnable
的 run()
方法中的任务。
- 使用场景:当你想为线程指定任务并为其命名时,可以使用该构造方法。
示例:
1 2 3 4
| Runnable task = () -> System.out.println("线程执行"); Thread thread = new Thread(task, "自定义线程名称"); System.out.println("线程名称: " + thread.getName()); thread.start();
|
✅ 5. Thread(ThreadGroup group, Runnable target)
- 作用:创建一个新的线程并指定线程组
group
和执行的任务 Runnable target
。
- 使用场景:当需要将线程加入特定的线程组时,可以使用该构造方法。
示例:
1 2 3 4
| ThreadGroup group = new ThreadGroup("线程组"); Runnable task = () -> System.out.println("线程执行"); Thread thread = new Thread(group, task); thread.start();
|
✅ 6. Thread(ThreadGroup group, Runnable target, String name)
- 作用:创建一个新的线程并指定线程组、执行的任务和线程名称。
- 使用场景:当你需要将线程加入特定的线程组、指定任务并命名线程时,可以使用该构造方法。
示例:
1 2 3 4 5
| ThreadGroup group = new ThreadGroup("线程组"); Runnable task = () -> System.out.println("线程执行"); Thread thread = new Thread(group, task, "自定义线程名称"); System.out.println("线程名称: " + thread.getName()); thread.start();
|
✅ 总结
构造方法 |
说明 |
Thread() |
创建一个没有任务和名称的线程 |
Thread(Runnable target) |
创建一个带有 Runnable 任务的线程 |
Thread(String name) |
创建一个没有任务但指定名称的线程 |
Thread(Runnable target, String name) |
创建一个带有 Runnable 任务并指定名称的线程 |
Thread(ThreadGroup group, Runnable target) |
创建一个带有 Runnable 任务并指定线程组的线程 |
Thread(ThreadGroup group, Runnable target, String name) |
创建一个带有 Runnable 任务、指定线程组和名称的线程 |