用大白话来讲讲多线程的知识架构

感觉多线程的知识又多又杂,自从接触java,就在一遍一遍捋脉络和深入学习。现在将这次的学习成果展示如下。

|---------|
| 什么是多线程? |

操作系统运行一个程序,就是一个线程。同时运行多个程序,就是多线程。即在同一时间,并行做多件事。

"并行"是相对于我们这些用户来说的,对于cpu来说,其在同一时间只能操作一个线程。cpu就像同时负责多个流水线的女工:在流水线①上操作------将①暂停------去流水线②上操作------将②暂停------返回流水线①继续操作......

所以:单核处理器也支持多线程执行代码。敲黑板,这是一个知识点。

|-----------|
| 为什么使用多线程? |

简单来说,就是为了让程序运行的更快,缩短程序的响应时间。举个栗子🌰。用户下单了一个商品,程序大致需要做以下几个步骤:

  • 减库存
  • 往数据库插入订单数据
  • 给卖家发通知

如果有3个线程同时做这3件事,那用时肯定能缩短。

|----------|
| 什么是线程安全? |

线程安全就是多个线程同时操作某个共享资源时,不会产生冲突。

"多个"、"同时"、"共享",对这3个词画个圈重点标注出来。

|-----------------|
| 为了保证线程安全,有哪些手段? |

1、使用关键字:volatile、threadlocal

2、使用锁:synchronized、lock

3、使用并发容器:currentHashMap、阻塞队列等

4、使用并发工具类:countdownLatch等

5、使用原子操作类:atomicInteger等。

|---------|
| 多线程的脉络图 |

|----|
| 后记 |

(1)多线程专栏的传送门,里面有一路学习多线程的印记:

多线程专栏

(2)"怕什么真理无穷,进一寸有一寸的欢喜",只要有进步就好~ 加油~

相关推荐
在世修行5 小时前
智学文枢:题目流水线
python·多线程·状态机·pyside
学长毕设5 小时前
基于SpringBoot的实验室资产管理系统
java·spring boot·后端
zzu123zsw6 小时前
从臃肿的模板调用到声明式契约:深入 UniHttp 动态代理与多渠道生命周期扩展
java·spring boot·microsoft·unihttp
源码集结号7 小时前
云诊所门诊系统源码,基于SpringBoot+Vue.js架构,支持多租户设计与Docker容器化部署
java·spring boot·源码·医院信息系统·门诊系统·诊所系统
论文复现现场7 小时前
WRF、FEA 能用 L40S 加速吗?求解器检查、断点恢复与长期运行
java·数据库·算法·wrf·有限元分析·gpu计算·断点续算
啃瓜子的松鼠8 小时前
泛微OAe9-后端二开异步调用
java
秋天的怀念_David8 小时前
第二十一夜 · 数字黑洞与西西弗斯的惩罚
java·程序人生·算法
外收内放9 小时前
Python基础语法练习题(73)
java·前端·python
Wang's Blog9 小时前
Java 项目实战: 交友项目 - 环信后台发送消息测试
java·交友
用户3721574261359 小时前
Java 操作 Word 脚注和尾注:添加、读取与删除
java