JAVA网络编程-第三章(多线程)
多进程、多线程概念及作用#
多线程两种实现方法的步骤#
注意:
实现Runnable接口获取该线程的线程名称应使用Thread.currentThread().getName()
,而继承Thread接口this.getName()
获取当前线程名称。
理解线程的run()以及start()方法#
什么时Runnable接口?#
多线程状态及其之间的切换。#
线程为什么需要调度#
线程调度原则#
为什么引入优先级?优先级高低?#
currentThread()/getName()/setName()方法#
public static Thread currentThread()
:返回对当前正在执行的线程对象的引用。
public String getName()
:获取当前线程名称。
public String setName()
:设置当前线程名称。
线程的控制总框架#
Thread类的控制线程执行的方法#
什么是线程同步?为什么要线程同步?#
Synchronized、wait()、notify()或notifyAll()的使用#
类锁和对象锁#
什么是守护线程?如何实现守护线程?#
守护线程:为其他线程服务的线程。在JVM中,所有非守护线程都执行完毕后,无论有没有守护线程,虚拟机都会自动退出。守护线程不能持有需要关闭的资源。
如何创建守护线程?在调用start()
方法之前,调用setDaemon(true)
把该线程标记为守护线程。
Thread t = new MyThread();
t.setDaemon(true);
t.start();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理