Java多线程基础:继承Thread类与线程名设置

需积分: 5 1 下载量 106 浏览量 更新于2024-08-04 收藏 28KB MD 举报
在Java编程中,第11天的学习内容主要聚焦于多线程(Multi-threading)的相关概念和技术。多线程是计算机程序设计中的一个重要组成部分,它允许一个进程中的多个并发执行路径,从而提高程序的执行效率和响应性。本节将详细探讨进程和线程的区别,以及如何通过继承Thread类来实现多线程。 首先,让我们回顾进程与线程的基本概念。进程是操作系统中独立运行的一个程序,拥有自己独立的内存空间和系统资源,是操作系统调度的基本单位。而线程是进程内部的执行单元,它是进程中一个可调度的活动单元,每个线程都具有自己的堆栈和局部变量,共享进程的全局资源。单线程程序只有一个执行路径,而多线程程序则可以同时执行多个任务。 在Java中,有两种常见的实现多线程的方式: 1. **继承Thread类**: - `void run()` 方法:这是每个线程类必须重写的方法,它包含了线程的实际执行逻辑。当线程被启动时,Java虚拟机(JVM)会自动调用这个方法。 - `void start()` 方法:用于启动线程,它不会立即执行run方法,而是创建一个新的线程对象,并将其状态设置为“新建”或“就绪”。只有调用`start()`方法后,线程才会进入运行状态,JVM会调用run方法执行。 在示例代码中,`MyThread` 类继承自Thread,重写了run()方法,包含一个简单的循环打印操作。在`MyThreadDemo` 类中,我们创建了两个`MyThread` 对象并调用`start()` 方法启动它们,这样就创建了两个并发执行的线程。 值得注意的是,虽然可以直接调用run()方法,但通常使用`start()` 方法更为常见,因为它能确保线程正确地加入到线程池并按照预期执行。另外,重写run()方法是为了确保每个线程执行特定的任务代码。 此外,Java还提供了设置和获取线程名称的功能,这对于调试和跟踪线程行为非常有用。`void setName(String name)` 方法允许开发者给线程指定一个名字,方便后期管理和诊断。通过`getName()` 方法可以获取线程的当前名称。 总结来说,第11天的学习涵盖了进程和线程的概念、Thread类的使用、线程启动方法的区别,以及如何通过设置线程名称来增强线程管理的可见性。理解这些基础概念和实践技巧,将有助于你在后续的Java编程中编写高效的多线程程序。