Java多线程入门与Thread与Runnable实现详解

需积分: 17 3 下载量 159 浏览量 更新于2024-07-25 1 收藏 642KB PDF 举报
Java多线程总结(一) 在Java编程中,多线程是实现并发处理的关键技术,它允许程序在同一时间执行多个任务,提高了程序的效率和响应性。Java提供了两种主要的方式来创建多线程:继承Thread类和实现Runnable接口。 1. 继承Thread类: 当你选择继承Thread类来创建线程时,你需要遵循以下步骤: - 创建子类:定义一个新的类并让它继承自Thread类,例如`class Hello extends Thread`。 - 重写`run()`方法:这个方法是线程的主体部分,通常在这里编写执行线程任务的代码。例如,在`hello`类中,`public void run()`里有一个for循环打印字符串。 - 实例化和启动线程:创建类的实例,并通过调用`start()`方法启动线程。这会使得线程进入就绪状态,等待CPU调度。原例中,`h1.start()`和`h2.start()`分别启动两个线程。 问题与修正: 在初始示例中,`run()`方法被直接调用,而不是`start()`。这会导致主线程执行`run()`方法,而不是创建新的线程。正确的做法是将`run()`调用替换为`start()`,如下: ```java h1.start(); h2.start(); ``` 这样,每个`hello`对象会创建一个独立的线程,它们会并发执行`run()`中的代码,从而实现了多线程效果。 2. 实现Runnable接口: 另一种创建多线程的方式是让类实现Runnable接口,然后传递给Thread类的构造函数。这样做可以避免Java单继承的限制,且更有利于代码复用。实现Runnable接口的代码结构如下: ```java class MyClass implements Runnable { // 实现run()方法 public void run() { // 线程任务 } // 其他方法... } Thread thread = new Thread(new MyClass()); thread.start(); ``` 总结: Java多线程的核心在于创建Thread对象或Runnable对象,并通过`start()`方法启动线程。理解这些基本概念后,你可以进一步学习同步、线程通信(如wait(), notify()等)以及线程池等高级主题,以充分利用Java的并发机制提高程序性能。同时,记住线程安全性和资源管理也是多线程编程中必须关注的重要方面。