Java多线程编程基础知识总结

需积分: 0 0 下载量 38 浏览量 更新于2024-08-03 收藏 2.56MB PDF 举报
Java多线程相关知识总结 Java多线程相关知识总结是Java编程语言中最重要的一部分。多线程是指在一个进程中可以同时执行多个线程,每个线程执行不同的任务,提高了程序的处理效率。下面是Java多线程相关知识的总结。 **进程和线程的概念** 进程是一个应用程序,一个进程是一个软件。线程指进程中的一个执行场景/单元。在Java中,启动Java程序会先启动JVM(JVM就是一个进程),JVM会启动主线程调用main方法,还有启动垃圾回收线程,Java程序至少有两个线程并发。 **进程和线程的关系** 进程相当于公司,线程相当于公司的员工。两个不同进程之间的内存独立不共享,两个线程(Java语言中)堆内存和方法区共享,栈内存独立(一个进程一个栈)。 **多线程并发** 多线程并发是指多个线程同时执行,每个线程(栈)执行每个线程的,互不干扰。理解一个火车站的多个窗口,多线程机制是为了提高程序的处理效率。使用多线程机制之后,main方法结束之后程序不一定结束(主栈空了),其它线程可能还在工作。 **多核CPU和单核CPU** 多核CPU可以做到多线程并发,单核CPU无法做到真正的多线程并发。单核CPU表示只有一个大脑,某个时间点上只能处理一件事情,CPU处理速度快,多个线程频繁切换执行,可以给现实世界中的人类一种错觉:感觉多个线程在同时并发执行。多进程的作用不是提高执行速度,而是提高CPU的使用率。 **线程的生命周期** 线程的生命周期多线程并发输出结果会有先有后、有多有少的原因。线程在就绪和运行态频繁切换,同个线程可能连续抢到执行权。 **创建线程的两种方式** 实现线程创建启动线程的两种方式:1.编写一个类直接继承java.lang.Thread类,重写run方法,创建线程对象,启动线程(调用对象的start方法)。start方法作用:启动一个分支线程,在JVM中开辟一个新的栈空间,完成之后瞬间结束(开辟新空间之后就结束)。启动成功之后会自动调用run方法,并将run方法放在栈底。run和main都在栈底,两者平级。方法体中遵循自上而下的规则,如果start方法没结束是不会执行后续代码的。 2.编写类实现Java.lang.Runnable接口,实现run方法(采用接口的方式实现多线程)。建议使用第二种方式,因为Java是单继承,继承了Thread类之后就无法继承其他的类,而实现Runnable接口之后还可以继承。采用匿名内部类的形式(通过一个没有名字的类new出一个对象,接口不能new对象,本质是new【匿名】implementRunnable)。 例如: ```java public class ThreadTest { public static void main(String[] args) { // ... } } ``` Java多线程相关知识总结是Java编程语言中最重要的一部分,了解多线程的概念、进程和线程的关系、多线程并发、多核CPU和单核CPU、线程的生命周期、创建线程的两种方式等知识点,对于Java程序的开发和优化非常重要。