Thread 类提供了几个常见的构造方法,用于创建和初始化线程。下面是 Thread 类的常见构造器及其说明:


1. Thread()

  • 作用:创建一个新的线程,默认没有指定任务,也没有指定线程名称。
  • 使用场景:当你想要自定义线程的任务时,通常通过继承 Thread 类并重写 run() 方法。

示例

1
2
Thread thread = new Thread();
thread.start();

2. Thread(Runnable target)

  • 作用:创建一个新的线程并将指定的 Runnable 目标传递给线程。该线程会执行 Runnablerun() 方法中的任务。
  • 使用场景:当线程的任务已经被实现为 Runnable 接口时,可以直接传递给 Thread 构造方法。

示例

1
2
3
Runnable task = () -> System.out.println("线程执行");
Thread thread = new Thread(task);
thread.start();

3. Thread(String name)

  • 作用:创建一个新的线程并指定线程名称。该线程将执行 run() 方法,线程名称默认为 Thread-0Thread-1 等。
  • 使用场景:当你想为线程指定名称时,可以使用该构造方法。

示例

1
2
3
Thread thread = new Thread("自定义线程名称");
System.out.println("线程名称: " + thread.getName());
thread.start();

4. Thread(Runnable target, String name)

  • 作用:创建一个新的线程并将指定的 Runnable 目标传递给线程,同时为线程指定一个名称。该线程将执行 Runnablerun() 方法中的任务。
  • 使用场景:当你想为线程指定任务并为其命名时,可以使用该构造方法。

示例

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 任务、指定线程组和名称的线程