用java 编写 TestThread 类,通过继承 java.lang.Thread 实现多线程,线程体中打印线程名称。(22) 在 main()方法中创建 2 个线程对象并启动。
时间: 2024-03-10 19:50:10 浏览: 24
可以按照以下步骤来实现:
1. 创建一个类 TestThread,继承 java.lang.Thread。
2. 重写 run 方法,在方法中打印线程名称。
3. 在 main 方法中创建 2 个 TestThread 对象,并启动线程。
以下是示例代码:
```java
public class TestThread extends Thread {
public void run() {
System.out.println(Thread.currentThread().getName());
}
public static void main(String[] args) {
TestThread thread1 = new TestThread();
TestThread thread2 = new TestThread();
thread1.start();
thread2.start();
}
}
```
运行程序,可以看到输出了两个不同的线程名称,表示两个线程同时在执行。
相关问题
java中多线程的常用方法
回答: 在Java中,创建多线程有几种常用的方法。其中一种方法是继承Thread类并重写其run()方法。通过创建一个继承自Thread类的子类,并在子类中重写run()方法来定义线程的执行逻辑。然后可以通过创建该子类的实例并调用start()方法来启动线程。例如,可以创建一个名为TestThread的类,继承自Thread类,并在其run()方法中定义线程的执行逻辑。然后可以创建TestThread的实例,并调用start()方法来启动线程。\[1\]
另一种常用的方法是实现Runnable接口。通过创建一个实现了Runnable接口的类,并实现其run()方法来定义线程的执行逻辑。然后可以创建该类的实例,并将其作为参数传递给Thread类的构造函数。最后,调用Thread类的start()方法来启动线程。例如,可以创建一个名为TestRunnable的类,实现了Runnable接口,并在其run()方法中定义线程的执行逻辑。然后可以创建TestRunnable的实例,并将其作为参数传递给Thread类的构造函数,最后调用start()方法来启动线程。\[2\]
此外,还可以使用Lambda表达式来创建Runnable线程目标类。通过使用Lambda表达式,可以更简洁地定义线程的执行逻辑。例如,可以使用Lambda表达式创建一个匿名的Runnable实例,并在其中定义线程的执行逻辑。然后可以将该实例作为参数传递给Thread类的构造函数,并调用start()方法来启动线程。\[3\]这种方法可以减少代码的冗余,并提高代码的可读性。
总结起来,Java中常用的多线程方法包括继承Thread类并重写run()方法、实现Runnable接口并实现run()方法,以及使用Lambda表达式创建Runnable线程目标类。这些方法都可以用来定义线程的执行逻辑,并通过调用start()方法来启动线程。
#### 引用[.reference_title]
- *1* *2* [java中实现多线程的三种方式](https://blog.csdn.net/Mao_yafeng/article/details/126089335)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [Java多线程之四种方法创建线程](https://blog.csdn.net/liu320yj/article/details/125703535)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
通过继承 Thread 类设计两个线程,其中: (1) 一个线程,类名为 FirstThread,打印 'a' ~ 'z'; (2) 另一个线程,类名为 SecondThread,打印 1~50; (3) 编写测试类 TestThread,在其 main( )方法中创建并启动这两个线程。
下面是一个简单的实现:
```
class FirstThread extends Thread {
public void run() {
for (char c = 'a'; c <= 'z'; c++) {
System.out.print(c + " ");
}
}
}
class SecondThread extends Thread {
public void run() {
for (int i = 1; i <= 50; i++) {
System.out.print(i + " ");
}
}
}
public class TestThread {
public static void main(String args[]) {
FirstThread firstThread = new FirstThread();
SecondThread secondThread = new SecondThread();
firstThread.start();
secondThread.start();
}
}
```
在这个实现中,我们创建了两个线程:`FirstThread` 和 `SecondThread`,分别打印字母和数字。这两个线程都继承了 `Thread` 类,并重写了 `run()` 方法,该方法定义了线程的行为。
在 `TestThread` 类的 `main()` 方法中,我们创建了 `FirstThread` 和 `SecondThread` 的实例,并调用它们的 `start()` 方法来启动线程。当线程被启动时,它们会自动调用 `run()` 方法,并执行定义的行为。在本例中,`FirstThread` 和 `SecondThread` 并行执行,打印字母和数字。