技术分享:Java多线程编程完全入门指南(基础版---含代码示例)

📅 2026/7/29 3:59:13
技术分享:Java多线程编程完全入门指南(基础版---含代码示例)
一、核心基础:进程与线程1.1 基本概念进程:操作系统资源分配的最小单位,独立占用内存、CPU资源,相互隔离。例如IDEA、浏览器、微信都是独立进程。线程:进程内的执行单元,CPU调度的最小单位,一个进程至少包含1个主线程,线程共享进程的内存资源。1.2 并发与并行并发:单核CPU,线程快速交替执行,宏观同时运行,微观串行(抢时间片)。并行:多核CPU,多个线程在不同核心同时真正执行。1.3 为什么要用多线程?充分利用多核CPU资源,提升程序吞吐量;避免程序阻塞,提升响应速度(如后端接口异步处理、前端UI不卡顿);拆分耗时任务,实现任务异步化、并行化处理。二、Java线程的4种创建方式(重点)Java中线程创建主流分为4种,其中线程池是实际开发中唯一推荐使用的方式。2.1 继承Thread类(基础方式)通过继承Thread类,重写run()方法实现线程逻辑,缺点是:单继承限制,无法再继承其他类。// 1.自定义线程类继承ThreadpublicclassThreadDemoextendsThread{// 重写run方法:线程执行的核心逻辑@Overridepublicvoidrun(){for(inti=0;i5;i++){System.out.println("线程执行:"+Thread.currentThread().getName()+" 序号:"+i);}}// 测试运行publicstaticvoidmain(String[]args){ThreadDemothread1=newThreadDemo();ThreadDemothread2=newThreadDemo();// 启动线程(注意:不是调用run(),是start())thread1.start();thread2.start();}}核心注意点:start()是开启线程、进入就绪状态;run()只是普通方法调用,不会开启新线程。2.2 实现Runnable接口(推荐,无继承限制)实现Runnable接口,重写run方法,解决了Thread类单继承的局限,是最常用的基础创建方式。// 2.实现Runnable接口publicclassRunnableDemoimplementsRunnable{@Overridepublicvoidrun(){for(inti=0;i5;i++){System.out.println("Runnable线程:"+Thread.currentThread().getName()+" 序号:"+i);}}publicstaticvoidmain(String[]args){RunnableDemorunnable=newRunnableDemo();// 传入Runnable对象,创建线程newThread(runnable,"线程A").start();newThread(runnable,"线程B").start();}}2.3 实现Callable接口(带返回值、可抛异常)Runnable无返回值、无法捕获线程异常,Callable解决了该问题,可获取线程执行结果。importjava.util.concurrent.Callable;importjava.util.concurrent.FutureTask;// 3.实现Callable接口,泛型为返回值类型publicclassCallableDemoimplementsCallableInteger{@OverridepublicIntegercall()