)在 Java 中使用线程模拟进程。在主线程中创建子线程,并在子线程中 显示“thread is running!”,然后将主线程挂起 5 秒,然后撤销子线程
时间: 2024-12-29 12:34:06 浏览: 7
在 Java 中,我们可以使用 `Thread` 类来模拟进程。首先,你需要创建一个实现了 `Runnable` 接口的类,这个类通常包含 `run()` 方法,这是新线程实际运行的部分。接下来,你可以创建一个 `Thread` 对象并将其绑定到你的 `Runnable` 实例上。以下是具体的步骤:
```java
public class ThreadDemo implements Runnable {
private String threadName;
public ThreadDemo(String name) {
threadName = name;
}
@Override
public void run() {
System.out.println("线程 " + threadName + " 正在运行!");
}
public static void main(String[] args) {
// 创建线程实例
Thread childThread = new Thread(new ThreadDemo("Child Thread"));
// 开始线程
childThread.start();
try {
// 挂起主线程 5 秒
Thread.sleep(5000);
System.out.println("主线程休眠结束,现在准备终止子线程");
} catch (InterruptedException e) {
e.printStackTrace();
}
// 撤销子线程,实际上无法直接停止线程,只能让其自然结束
// 子线程一旦启动,除非抛出异常,否则不会自动停止
// childThread.interrupt(); // 这里只是设置中断标志,不会立即停止线程
}
}
```
注意,虽然我们在主线程中设置了 `childThread.interrupt()` 来中断子线程,但在大部分现代 JVM 实现中,这只是一个通知,告诉线程有中断请求。如果子线程内部没有处理中断,它可能会继续运行直到完成。在实际应用中,你可能需要在 `run()` 方法中检查 `Thread.currentThread().isInterrupted()` 并相应地处理中断。
阅读全文