Java多线程实战:Runnable接口与线程运行示例

需积分: 9 1 下载量 68 浏览量 更新于2024-07-16 收藏 627KB PDF 举报
"本章详细介绍了如何在Java中实现多线程应用,通过实例展示了Runnable接口的使用方法,以及如何创建和运行线程。" 在Java编程中,多线程是实现并发执行任务的关键概念。这有助于提高程序的效率,尤其是在处理大量I/O操作或者需要同时进行多个独立任务的场景下。本章主要讲解了如何利用`Runnable`接口创建和运行线程,以加深对多线程理解。 1. `Runnable`接口:`Runnable`是Java提供的一个接口,它定义了一个单一的方法`run()`。当我们的任务需要在新线程中运行时,可以通过实现这个接口并将任务逻辑放入`run()`方法内。这样做的好处是,我们可以避免单继承的限制,因为Java只支持单继承,但可以实现多个接口。 ```java public interface Runnable { void run(); } public class MyRunnable implements Runnable { public void run() { // 任务代码 } } ``` 2. 创建并启动线程:创建一个实现了`Runnable`接口的类后,我们需要创建该类的一个实例,并用这个实例来构造一个新的`Thread`对象。最后,调用`Thread`对象的`start()`方法启动线程。 ```java Runnable r = new MyRunnable(); Thread t = new Thread(r); t.start(); ``` 3. 示例应用:为了演示多线程的应用,书中给出了一例,每秒打印一个时间戳和"Hello, World!",连续打印10次。这通过在`run()`方法中实现循环和延迟来完成。 ```java public class GreetingRunnable implements Runnable { private String greeting; public GreetingRunnable(String aGreeting) { greeting = aGreeting; } public void run() { for (int i = 0; i < 10; i++) { System.out.println(new Date() + " " + greeting); try { Thread.sleep(1000); // 等待1秒 } catch (InterruptedException e) { e.printStackTrace(); } } } } ``` 4. `run()`方法的扩展:`run()`方法内可以包含任何需要在新线程中执行的任务。在这个示例中,任务包括打印时间戳、输出问候语和等待1秒。这个循环可以依据实际需求进行修改,以适应不同的并发场景。 总结来说,本章内容通过具体的例子详细阐述了如何在Java中创建和管理线程,以及如何通过`Runnable`接口实现任务的并发执行。对于初学者来说,这些知识是理解多线程编程的基础,也是进一步学习高级并发特性和工具(如`synchronized`关键字、`ExecutorService`等)的前提。掌握这些概念有助于提升程序的性能和响应能力。