当前位置: 首页 > wzjs >正文

赣州网站建设-赣州做网站怎么推广引流客户

赣州网站建设-赣州做网站,怎么推广引流客户,公司介绍ppt制作,中国住房建设部网站文章目录 线程与进程核心知识学习卡片一、基础概念1. 什么是进程?2. 什么是线程?3. 进程 vs 线程 对比表 二、线程状态与生命周期Java 中线程的六种状态: 三、常见问题解答(FAQ)Q1:什么是上下文切换&#x…

文章目录

  • 线程与进程核心知识学习卡片
    • 一、基础概念
      • 1. 什么是进程?
      • 2. 什么是线程?
      • 3. 进程 vs 线程 对比表
    • 二、线程状态与生命周期
      • Java 中线程的六种状态:
    • 三、常见问题解答(FAQ)
      • Q1:什么是上下文切换?
      • Q2:什么是守护线程?
      • Q3:什么是死锁?如何避免?
      • Q4:`synchronized` 和 `ReentrantLock` 的区别?
      • Q5:`volatile` 关键字的作用是什么?能代替锁吗?
      • Q6:`Thread.sleep()` 和 `Object.wait()` 的区别?
    • 四、线程池详解
      • 1. 为什么要用线程池?
      • 2. 核心参数说明
      • 3. 工作流程图解
      • 4. 常见拒绝策略
    • 五、进阶理解
      • Java 中的线程模型是哪种?
      • 线程池是否应该关闭?如果不关闭会怎样?
    • 六、类比与比喻
    • 七、推荐学习资料
    • ✅ 总结一句话

线程与进程核心知识学习卡片


一、基础概念

1. 什么是进程?

  • 是程序的一次执行过程;
  • 是资源分配的基本单位;
  • 拥有独立的地址空间、堆栈、文件描述符等资源。

2. 什么是线程?

  • 是 CPU 调度的基本单位;
  • 同一个进程中的多个线程共享资源;
  • 创建和切换成本比进程低。

3. 进程 vs 线程 对比表

特性进程线程
资源分配独立拥有资源共享所属进程资源
切换代价
安全性相互隔离易受干扰
并发性可并行执行更高效并发

二、线程状态与生命周期

Java 中线程的六种状态:

状态描述
NEW线程对象已创建但尚未启动
RUNNABLE可运行状态(包括正在运行和等待 CPU)
BLOCKED等待获取锁进入 synchronized 代码块或方法
WAITING等待其他线程唤醒(如调用 Object.wait()
TIMED_WAITING在指定时间内等待(如 sleep(), wait(timeout)
TERMINATED线程已经结束

三、常见问题解答(FAQ)

Q1:什么是上下文切换?

上下文切换是 CPU 从一个线程(或进程)切换到另一个线程的过程。频繁切换会带来性能损耗。

Q2:什么是守护线程?

守护线程是一种为其他线程提供服务的线程,如垃圾回收器。JVM 不会因为守护线程而阻止退出。

Q3:什么是死锁?如何避免?

死锁是多个线程互相等待对方释放资源导致都无法继续执行。

  • 避免方式:
    • 按固定顺序加锁;
    • 使用 tryLock;
    • 避免嵌套锁;

Q4:synchronizedReentrantLock 的区别?

特性synchronizedReentrantLock
加锁方式自动加锁解锁手动控制 lock/unlock
尝试锁不支持支持 tryLock
超时机制不支持支持
公平性默认非公平可设置为公平锁

Q5:volatile 关键字的作用是什么?能代替锁吗?

volatile 保证变量的可见性和禁止指令重排序,但不保证原子性,不能完全替代锁。

Q6:Thread.sleep()Object.wait() 的区别?

对比点Thread.sleep()Object.wait()
是否释放锁❌ 不释放✅ 释放
唤醒方式时间到了自动恢复需要调用 notify/notifyAll
使用前提必须在同步代码块中调用

四、线程池详解

1. 为什么要用线程池?

  • 提高响应速度;
  • 控制最大并发数;
  • 统一管理线程生命周期;
  • 减少线程创建销毁开销;

2. 核心参数说明

ThreadPoolExecutor(int corePoolSize,      // 核心线程数int maximumPoolSize,   // 最大线程数long keepAliveTime,    // 非核心线程空闲存活时间TimeUnit unit,         // 时间单位BlockingQueue<Runnable> workQueue, // 任务队列ThreadFactory threadFactory,       // 线程工厂RejectedExecutionHandler handler) // 拒绝策略

3. 工作流程图解

  1. 如果当前线程数 < corePoolSize → 新建线程处理;
  2. 如果 >= corePoolSize 且队列未满 → 加入队列等待;
  3. 如果队列已满 且线程数 < maxPoolSize → 新建线程处理;
  4. 如果线程数已达 maxPoolSize 且队列已满 → 触发拒绝策略;

4. 常见拒绝策略

策略描述
AbortPolicy默认策略,抛出异常
CallerRunsPolicy由调用者线程自己执行该任务
DiscardPolicy默默丢弃任务
DiscardOldestPolicy丢弃队列中最老的任务

五、进阶理解

Java 中的线程模型是哪种?

Java 使用的是 一对一模型(1:1),每个 Java 线程对应一个 OS 线程。

线程池是否应该关闭?如果不关闭会怎样?

应该关闭线程池,否则可能导致内存泄漏、程序无法正常退出。

正确做法示例:

executor.shutdown(); 
if (!executor.awaitTermination(60, TimeUnit.SECONDS)) {executor.shutdownNow();
}

六、类比与比喻

类比描述
进程 = 公司拥有自己的地址、员工、资产
线程 = 员工共享公司资源,各自工作,崩溃可能影响整个公司
线程池 = 外包团队事先准备好人员,按需调用,统一管理

七、推荐学习资料

类型推荐内容
📚 书籍《操作系统导论》《Java并发编程实战》《深入理解计算机系统》
🎥 视频B站清华大学操作系统课程、极客时间《Java并发编程实战课》
🧪 工具VS Code + Markdown 插件、Typora、Draw.io(画图)

✅ 总结一句话

线程和进程是操作系统和并发编程的核心基础,掌握它们的概念、状态、调度、协作机制,是你写出高性能、稳定、安全程序的关键。

http://www.dtcms.com/wzjs/338881.html

相关文章:

  • 内蒙古生产建设兵团四师三十四团知青网站2023年最新新闻摘抄
  • 做彩票网站需要多少钱收录批量查询
  • 中小企业怎么优化网站汕头百度网站推广
  • 仿58同城网站模板杭州seo推广优化公司
  • 知名商业网站有哪些百度网盘pc网页版入口
  • 帝国网站seo推广平台排名
  • 支付网站建设百度官方网
  • seo网站排名软件荆州百度推广
  • 公司宣传 如何做公司网站指数基金
  • 广州网站建设服务电话短视频运营是做什么的
  • 小语言网站建设贵州萝岗seo整站优化
  • 用vs2010做免费网站模板下载seo关键词排名优化
  • 哪个网站可以哪些企业做哪些产品百度网站提交
  • 域名 利用域名做网站 邮箱今日国内最新新闻
  • 海纳网站建设制作公司网页多少钱
  • 做网站主题优化大师官网下载
  • 东莞网站建设多少钱今天最火的新闻头条
  • 高端网站建设创新太原seo建站
  • 做电焊加工的网站杭州优化建筑设计
  • 哪里有微信网站建设设计网站模板
  • ppt模板免费下载哪个网站好推广赚钱软件
  • 网站开发先写后端先写前端营销软文300字范文
  • 网站建设的任务免费收录软文网站
  • 做网站风险seo推广什么意思
  • 张家港市地方政府网站建设存在的问题与对策如何优化推广网站
  • 石家庄做网站好的网络技术有限公司seo网站首页推广
  • 中国个人优秀网站深圳龙华区大浪社区
  • 哈尔滨网站建设收费西安seo外包行者seo
  • 广告传媒网站模板运营网站是什么意思
  • 投票活动网站怎么做长尾关键词挖掘爱站网