线程是Java中能独立执行代码的最小单位,一个程序至少有一个主线程;进程是操作系统分配资源的基本单位,线程是进程内的执行单元,共享内存但栈独立;创建线程推荐实现Runnable接口;线程状态包括NEW、RUNNABLE、BLOCKED、WAITING、TERMINATED;多线程用于提升CPU密集型和I/O密集型任务效率及GUI响应性,但需防范竞态、死锁等问题。

线程是 Java 中能独立执行代码的最小单位,一个程序运行起来至少有一个主线程(main 线程),它负责执行 main 方法里的代码。
线程和进程的区别
进程是操作系统分配资源的基本单位,比如启动一个 Java 程序,就开启了一个 JVM 进程;而线程是进程内部的执行单元,多个线程共享同一个进程的内存空间(如堆、方法区),但各自有独立的栈空间。
- 一个进程可以有多个线程,比如 Web 服务器用多线程同时处理多个用户请求
- 线程切换比进程切换开销小,因为不用切换整个内存空间
- 线程间通信方便(通过共享变量、wait/notify、Lock 等),但也容易出问题(比如数据不一致)
Java 中怎么创建线程
最常用两种方式:
- 继承 Thread 类,重写 run() 方法,然后调用 start() 启动
- 实现 Runnable 接口,把任务传给 Thread 构造器,再调用 start()
推荐第二种:更灵活,避免单继承限制,也符合“组合优于继承”的设计原则。从 Java 8 开始,用 Lambda 表达式写 Runnable 更简洁,比如:
new Thread(() -> System.out.println("Hello")).start();
线程的生命周期和状态
一个线程从创建到结束,会经历几个状态:NEW → RUNNABLE → RUNNING → BLOCKED / WAITING / TIMED_WAITING → TERMINATED。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~