Java多线程基础讲义:创建与特性详解

需积分: 9 1 下载量 156 浏览量 更新于2024-07-28 收藏 45KB DOCX 举报
本篇讲义主要针对Java多线程进行深入讲解,涵盖了多线程的基本概念、Java虚拟机中的线程结构以及两种常见的创建线程方式。首先,让我们来理解进程和线程的区别: 基本概念 - 进程:一个正在执行中的程序,每个进程都有自己独立的执行顺序,即控制流。一个进程中至少包含一个线程。 - 线程:是进程中的一个独立执行单元,负责控制进程中的任务执行。Java VM启动时,主线程(通常由`main()`方法启动)是进程的核心组成部分。 创建线程的方式 1. 继承Thread类: - 创建一个类继承自`Thread`,重写`run()`方法,这个方法是线程的主要执行体。 - 在`main()`方法中创建`Thread`对象并调用`start()`方法启动线程。由于线程调度的随机性,每次运行结果可能不同,体现了多线程的并发性和抢占式执行特性。 ```java public class ThreadDemo { public static void main(String[] args) { ThreadTest d = new ThreadTest(); d.start(); for (int i = 0; i < 20; i++) { System.out.print("mainThread===" + i); } } } class ThreadTest extends Thread { @Override public void run() { for (int i = 0; i < 20; i++) { System.out.print("ThreadTest===" + i); } } } ``` 2. 实现Runnable接口: - 创建一个类实现`Runnable`接口,重写`run()`方法。 - 将实现了Runnable接口的类的对象作为参数传递给`Thread`的构造函数,创建Thread实例后调用`start()`方法。 ```java class Ticket1 implements Runnable { private int ticket = 100; @Override public void run() { while (true) { if (ticket > 0) { System.out.println(Thread.currentThread().getName() + "------"); // ... } } } } // 使用Runnable创建线程 public class Main { public static void main(String[] args) { Thread ticketThread = new Thread(new Ticket1()); ticketThread.start(); // ... } } ``` 总结来说,Java多线程是通过共享资源和交替执行来实现并发的,通过继承Thread类或实现Runnable接口创建线程,核心在于理解线程的生命周期、线程调度机制以及如何管理和同步多个线程以避免数据竞争。此外,多线程编程需要注意线程安全问题,如使用synchronized关键字、Lock接口等机制确保并发环境下的数据一致性。