news 2026/4/23 16:42:24

弱引用指向 ThreadLocal 实例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
弱引用指向 ThreadLocal 实例

一、核心原理
1. 数据存储结构
// 每个 Thread 对象内部都有一个 ThreadLocalMap
ThreadLocal.ThreadLocalMap threadLocals = null;

// ThreadLocalMap 内部使用 Entry 数组,Entry 继承自 WeakReference<ThreadLocal<?>>
static class Entry extends WeakReference<ThreadLocal<?>> {
Object value;
Entry(ThreadLocal<?> k, Object v) {
super(k); // 弱引用指向 ThreadLocal 实例
value = v; // 强引用指向实际存储的值
}
}
AI写代码

2. 关键设计
线程隔离:每个线程有自己的 ThreadLocalMap 副本
哈希表结构:使用开放地址法解决哈希冲突
弱引用键:Entry 的 key(ThreadLocal 实例)是弱引用
延迟清理:set / get 时自动清理过期条目
二、源码分析
1. set() 方法流程
public void set(T value) {
Thread t = Thread.currentThread();
ThreadLocalMap map = getMap(t);
if (map != null) {
map.set(this, value); // this指当前ThreadLocal实例
} else {
createMap(t, value);
}
}

ThreadLocal 是强大的线程隔离工具,但需要谨慎使用。在 Web 应用和线程池场景中,必须在 finally 块中调用 remove(),这是避免内存泄漏的关键。

面试回答
关于 ThreadLocal,我从原理、场景和内存泄漏三个方面来说一下我的理解。

1. 首先,它的核心原理是什么?
简单来说,ThreadLocal 是一个线程级别的变量隔离工具。它的设计目标就是让同一个变量,在不同的线程里有自己独立的副本,互不干扰。

底层结构:每个线程(Thread对象)内部都有一个自己的 ThreadLocalMap(你可以把它想象成一个线程私有的、简易版的HashMap)。
怎么存:当我们调用 ThreadLocal.set(value) 时,实际上是以当前的 ThreadLocal 实例自身作为 Key,要保存的值作为 Value,存入当前线程的那个 ThreadLocalMap 里。
怎么取:调用 ThreadLocal.get() 时,也是用自己作为 Key,去当前线程的 Map 里查找对应的 Value。
打个比方:就像去银行租保险箱。Thread 是银行,ThreadLocalMap 是银行里的一排保险箱,ThreadLocal 实例就是你手里那把特定的钥匙。你用这把钥匙(ThreadLocal实例)只能打开属于你的那个格子(当前线程的Map),存取自己的东西(Value),完全看不到别人格子的东西。不同的人(线程)即使用同一款钥匙(同一个ThreadLocal实例),打开的也是不同银行的格子,东西自然隔离了。
2. 其次,它的典型使用场景有哪些?
正是因为这种线程隔离的特性,它特别适合用来传递一些需要在线程整个生命周期内、多个方法间共享,但又不能(或不想)通过方法参数显式传递的数据。最常见的有两个场景:

场景一:保存上下文信息(最经典)
比如在 Web 应用 或 RPC 框架 中处理一个用户请求时,这个请求从进入系统到返回响应,全程可能由同一个线程处理。我们会把一些信息(比如用户ID、交易ID、语言环境)存到一个 ThreadLocal 里。这样,后续的任何业务方法、工具类,只要在同一个线程里,就能直接 get() 到这些信息,避免了在每一个方法签名上都加上这些参数,代码会简洁很多。
场景二:管理线程安全的独享资源
典型例子是 数据库连接 和 SimpleDateFormat。
像 SimpleDateFormat 这个类,它不是线程安全的。如果做成全局共享,就要加锁,性能差。用 ThreadLocal 的话,每个线程都拥有自己的一个 SimpleDateFormat 实例,既避免了线程安全问题,又因为线程复用了这个实例,减少了创建对象的开销。
类似的,在一些需要保证数据库连接线程隔离(比如事务管理)的场景,也会用到 ThreadLocal 来存放当前线程的连接。
3. 最后,关于它的内存泄漏问题
ThreadLocal 如果使用不当,确实可能导致内存泄漏。它的根源在于 ThreadLocalMap 中 Entry 的设计。

问题根源:
ThreadLocalMap 的 Key(也就是 ThreadLocal 实例)是一个 弱引用。这意味着,如果外界没有强引用指向这个 ThreadLocal 对象(比如我们把 ThreadLocal 变量设为了 null),下次垃圾回收时,这个 Key 就会被回收掉,于是 Map 里就出现了一个 Key 为 null,但 Value 依然存在的 Entry。
这个 Value 是一个强引用,只要线程还活着(比如用的是线程池,线程会复用,一直不结束),这个 Value 对象就永远无法被回收,造成了内存泄漏。
如何避免:
良好习惯:每次使用完 ThreadLocal 后,一定要手动调用 remove() 方法。这不仅是清理当前值,更重要的是它会清理掉整个 Entry,这是最有效、最安全的做法。

https://www.zhihu.com/zvideo/1993097979100424181
https://www.zhihu.com/zvideo/1993097979100424181/
https://www.zhihu.com/zvideo/1993097899819701302
https://www.zhihu.com/zvideo/1993097899819701302/
https://www.zhihu.com/zvideo/1993097939481019196
https://www.zhihu.com/zvideo/1993097939481019196/
https://www.zhihu.com/zvideo/1993097949471856212
https://www.zhihu.com/zvideo/1993097949471856212/
https://www.zhihu.com/zvideo/1993097972553102368
https://www.zhihu.com/zvideo/1993097972553102368/
https://www.zhihu.com/zvideo/1993097975703029745
https://www.zhihu.com/zvideo/1993097975703029745/
https://www.zhihu.com/zvideo/1993097931104985850
https://www.zhihu.com/zvideo/1993097931104985850/
https://www.zhihu.com/zvideo/1993097958497985541
https://www.zhihu.com/zvideo/1993097958497985541/
https://www.zhihu.com/zvideo/1993097968446875042
https://www.zhihu.com/zvideo/1993097968446875042/
https://www.zhihu.com/zvideo/1993097921906880696
https://www.zhihu.com/zvideo/1993097921906880696/
https://www.zhihu.com/zvideo/1993098058955760810
https://www.zhihu.com/zvideo/1993098058955760810/
https://www.zhihu.com/zvideo/1993097986079753305
https://www.zhihu.com/zvideo/1993097986079753305/
https://www.zhihu.com/zvideo/1993098062537708350
https://www.zhihu.com/zvideo/1993098062537708350/
https://www.zhihu.com/zvideo/1993098032829469276
https://www.zhihu.com/zvideo/1993098032829469276/
https://www.zhihu.com/zvideo/1993097982577492435
https://www.zhihu.com/zvideo/1993097982577492435/
https://www.zhihu.com/zvideo/1993098066279020426
https://www.zhihu.com/zvideo/1993098066279020426/
https://www.zhihu.com/zvideo/1993097996989126647
https://www.zhihu.com/zvideo/1993097996989126647/
https://www.zhihu.com/zvideo/1993098054555940548
https://www.zhihu.com/zvideo/1993098054555940548/
https://www.zhihu.com/zvideo/1993097992702551365
https://www.zhihu.com/zvideo/1993097992702551365/
https://www.zhihu.com/zvideo/1993098024386307291
https://www.zhihu.com/zvideo/1993098024386307291/
https://www.zhihu.com/zvideo/1993098013523068380
https://www.zhihu.com/zvideo/1993098013523068380/
https://www.zhihu.com/zvideo/1993098020900853581
https://www.zhihu.com/zvideo/1993098020900853581/
https://www.zhihu.com/zvideo/1993098005801349789
https://www.zhihu.com/zvideo/1993098005801349789/
https://www.zhihu.com/zvideo/1993097989464532219
https://www.zhihu.com/zvideo/1993097989464532219/
https://www.zhihu.com/zvideo/1993098027762729662
https://www.zhihu.com/zvideo/1993098027762729662/
https://www.zhihu.com/zvideo/1993098036428175246
https://www.zhihu.com/zvideo/1993098036428175246/
https://www.zhihu.com/zvideo/1993098088236225584
https://www.zhihu.com/zvideo/1993098088236225584/
https://www.zhihu.com/zvideo/1993098073711330401
https://www.zhihu.com/zvideo/1993098073711330401/
https://www.zhihu.com/zvideo/1993098040144328014
https://www.zhihu.com/zvideo/1993098040144328014/
https://www.zhihu.com/zvideo/1993098047446593935
https://www.zhihu.com/zvideo/1993098047446593935/
https://www.zhihu.com/zvideo/1993098051183728228
https://www.zhihu.com/zvideo/1993098051183728228/
https://www.zhihu.com/zvideo/1993098043977924742
https://www.zhihu.com/zvideo/1993098043977924742/
https://www.zhihu.com/zvideo/1993098077653980431
https://www.zhihu.com/zvideo/1993098077653980431/
https://www.zhihu.com/zvideo/1993098081193988193
https://www.zhihu.com/zvideo/1993098081193988193/
https://www.zhihu.com/zvideo/1993098069974198179
https://www.zhihu.com/zvideo/1993098069974198179/
https://www.zhihu.com/zvideo/1993098095207142796
https://www.zhihu.com/zvideo/1993098095207142796/
https://www.zhihu.com/zvideo/1993098108003962993
https://www.zhihu.com/zvideo/1993098108003962993/
https://www.zhihu.com/zvideo/1993098084683629130
https://www.zhihu.com/zvideo/1993098084683629130/
https://www.zhihu.com/zvideo/1993098099946702774
https://www.zhihu.com/zvideo/1993098099946702774/
https://www.zhihu.com/zvideo/1993098104308778882
https://www.zhihu.com/zvideo/1993098104308778882/
https://www.zhihu.com/zvideo/1993098091813958595
https://www.zhihu.com/zvideo/1993098091813958595/
https://www.zhihu.com/zvideo/1993098116736497427
https://www.zhihu.com/zvideo/1993098116736497427/
https://www.zhihu.com/zvideo/1993098113007776969
https://www.zhihu.com/zvideo/1993098113007776969/
https://www.zhihu.com/zvideo/1993098120435888230
https://www.zhihu.com/zvideo/1993098120435888230/
https://www.zhihu.com/zvideo/1993098175041524093
https://www.zhihu.com/zvideo/1993098175041524093/
https://www.zhihu.com/zvideo/1993098153134675055
https://www.zhihu.com/zvideo/1993098153134675055/
https://www.zhihu.com/zvideo/1993098163607859767
https://www.zhihu.com/zvideo/1993098163607859767/
https://www.zhihu.com/zvideo/1993098236269971320
https://www.zhihu.com/zvideo/1993098236269971320/
https://www.zhihu.com/zvideo/1993098140488856374
https://www.zhihu.com/zvideo/1993098140488856374/
https://www.zhihu.com/zvideo/1993098243891020536
https://www.zhihu.com/zvideo/1993098243891020536/
https://www.zhihu.com/zvideo/1993098214409249619
https://www.zhihu.com/zvideo/1993098214409249619/
https://www.zhihu.com/zvideo/1993098128287618371
https://www.zhihu.com/zvideo/1993098128287618371/
https://www.zhihu.com/zvideo/1993098187108550547
https://www.zhihu.com/zvideo/1993098187108550547/
https://www.zhihu.com/zvideo/1993098229026423375
https://www.zhihu.com/zvideo/1993098229026423375/
https://www.zhihu.com/zvideo/1993098324157411470
https://www.zhihu.com/zvideo/1993098324157411470/
https://www.zhihu.com/zvideo/1993098197770466300
https://www.zhihu.com/zvideo/1993098197770466300/
https://www.zhihu.com/zvideo/1993098218641306920
https://www.zhihu.com/zvideo/1993098218641306920/
https://www.zhihu.com/zvideo/1993098225364791356
https://www.zhihu.com/zvideo/1993098225364791356/
https://www.zhihu.com/zvideo/1993098210848294316
https://www.zhihu.com/zvideo/1993098210848294316/
https://www.zhihu.com/zvideo/1993098221925458846
https://www.zhihu.com/zvideo/1993098221925458846/
https://www.zhihu.com/zvideo/1993098232562225341
https://www.zhihu.com/zvideo/1993098232562225341/
https://www.zhihu.com/zvideo/1993098239809955756
https://www.zhihu.com/zvideo/1993098239809955756/
https://www.zhihu.com/zvideo/1993098247410057669
https://www.zhihu.com/zvideo/1993098247410057669/
https://www.zhihu.com/zvideo/1993098250971014677
https://www.zhihu.com/zvideo/1993098250971014677/
https://www.zhihu.com/zvideo/1993098254657818849
https://www.zhihu.com/zvideo/1993098254657818849/
https://www.zhihu.com/zvideo/1993098258361369098
https://www.zhihu.com/zvideo/1993098258361369098/
https://www.zhihu.com/zvideo/1993098263100940403
https://www.zhihu.com/zvideo/1993098263100940403/
https://www.zhihu.com/zvideo/1993098266934523717
https://www.zhihu.com/zvideo/1993098266934523717/
https://www.zhihu.com/zvideo/1993098270394835898
https://www.zhihu.com/zvideo/1993098270394835898/
https://www.zhihu.com/zvideo/1993098274148730487
https://www.zhihu.com/zvideo/1993098274148730487/
https://www.zhihu.com/zvideo/1993098281220318776
https://www.zhihu.com/zvideo/1993098281220318776/
https://www.zhihu.com/zvideo/1993098277655184069
https://www.zhihu.com/zvideo/1993098277655184069/
https://www.zhihu.com/zvideo/1993098284869383023
https://www.zhihu.com/zvideo/1993098284869383023/
https://www.zhihu.com/zvideo/1993098299620730620
https://www.zhihu.com/zvideo/1993098299620730620/
https://www.zhihu.com/zvideo/1993098288413561437
https://www.zhihu.com/zvideo/1993098288413561437/
https://www.zhihu.com/zvideo/1993098291873875664
https://www.zhihu.com/zvideo/1993098291873875664/
https://www.zhihu.com/zvideo/1993098303026520669
https://www.zhihu.com/zvideo/1993098303026520669/
https://www.zhihu.com/zvideo/1993098295791359248
https://www.zhihu.com/zvideo/1993098295791359248/
https://www.zhihu.com/zvideo/1993098310010040461
https://www.zhihu.com/zvideo/1993098310010040461/
https://www.zhihu.com/zvideo/1993098306600067852
https://www.zhihu.com/zvideo/1993098306600067852/
https://www.zhihu.com/zvideo/1993098333988877682
https://www.zhihu.com/zvideo/1993098333988877682/
https://www.zhihu.com/zvideo/1993098327810666523
https://www.zhihu.com/zvideo/1993098327810666523/
https://www.zhihu.com/zvideo/1993098337084261174
https://www.zhihu.com/zvideo/1993098337084261174/
https://www.zhihu.com/zvideo/1993098313763942412
https://www.zhihu.com/zvideo/1993098313763942412/
https://www.zhihu.com/zvideo/1993098360794653827
https://www.zhihu.com/zvideo/1993098360794653827/
https://www.zhihu.com/zvideo/1993098350497662931
https://www.zhihu.com/zvideo/1993098350497662931/
https://www.zhihu.com/zvideo/1993098320634192276
https://www.zhihu.com/zvideo/1993098320634192276/
https://www.zhihu.com/zvideo/1993098340414529736
https://www.zhihu.com/zvideo/1993098340414529736/
https://www.zhihu.com/zvideo/1993098331270960439
https://www.zhihu.com/zvideo/1993098331270960439/
https://www.zhihu.com/zvideo/1993098357338575296
https://www.zhihu.com/zvideo/1993098357338575296/
https://www.zhihu.com/zvideo/1993098364317876462
https://www.zhihu.com/zvideo/1993098364317876462/
https://www.zhihu.com/zvideo/1993098354033435856
https://www.zhihu.com/zvideo/1993098354033435856/
https://www.zhihu.com/zvideo/1993098343375709165
https://www.zhihu.com/zvideo/1993098343375709165/
https://www.zhihu.com/zvideo/1993098374145147673
https://www.zhihu.com/zvideo/1993098374145147673/
https://www.zhihu.com/zvideo/1993098346810864328
https://www.zhihu.com/zvideo/1993098346810864328/
https://www.zhihu.com/zvideo/1993098386157634972
https://www.zhihu.com/zvideo/1993098386157634972/
https://www.zhihu.com/zvideo/1993098394667860997
https://www.zhihu.com/zvideo/1993098394667860997/
https://www.zhihu.com/zvideo/1993098403316515830
https://www.zhihu.com/zvideo/1993098403316515830/
https://www.zhihu.com/zvideo/1993098429178598898
https://www.zhihu.com/zvideo/1993098429178598898/
https://www.zhihu.com/zvideo/1993098414553073311
https://www.zhihu.com/zvideo/1993098414553073311/
https://www.zhihu.com/zvideo/1993098546191287631
https://www.zhihu.com/zvideo/1993098546191287631/
https://www.zhihu.com/zvideo/1993098421855339255
https://www.zhihu.com/zvideo/1993098421855339255/
https://www.zhihu.com/zvideo/1993098466650509667
https://www.zhihu.com/zvideo/1993098466650509667/
https://www.zhihu.com/zvideo/1993098437592380926
https://www.zhihu.com/zvideo/1993098437592380926/
https://www.zhihu.com/zvideo/1993098451077063326
https://www.zhihu.com/zvideo/1993098451077063326/
https://www.zhihu.com/zvideo/1993098445985190198
https://www.zhihu.com/zvideo/1993098445985190198/
https://www.zhihu.com/zvideo/1993098463290867899
https://www.zhihu.com/zvideo/1993098463290867899/
https://www.zhihu.com/zvideo/1993098470026916074
https://www.zhihu.com/zvideo/1993098470026916074/
https://www.zhihu.com/zvideo/1993098473504011532
https://www.zhihu.com/zvideo/1993098473504011532/
https://www.zhihu.com/zvideo/1993098477106906789
https://www.zhihu.com/zvideo/1993098477106906789/
https://www.zhihu.com/zvideo/1993098542584190526
https://www.zhihu.com/zvideo/1993098542584190526/
https://www.zhihu.com/zvideo/1993098519813317410
https://www.zhihu.com/zvideo/1993098519813317410/
https://www.zhihu.com/zvideo/1993098601459626456
https://www.zhihu.com/zvideo/1993098601459626456/
https://www.zhihu.com/zvideo/1993098587203207713
https://www.zhihu.com/zvideo/1993098587203207713/
https://www.zhihu.com/zvideo/1993098590709629449
https://www.zhihu.com/zvideo/1993098590709629449/
https://www.zhihu.com/zvideo/1993098578923636711
https://www.zhihu.com/zvideo/1993098578923636711/
https://www.zhihu.com/zvideo/1993098526780064230
https://www.zhihu.com/zvideo/1993098526780064230/
https://www.zhihu.com/zvideo/1993098504516677656
https://www.zhihu.com/zvideo/1993098504516677656/
https://www.zhihu.com/zvideo/1993098480571401257
https://www.zhihu.com/zvideo/1993098480571401257/
https://www.zhihu.com/zvideo/1993098497117942683
https://www.zhihu.com/zvideo/1993098497117942683/
https://www.zhihu.com/zvideo/1993098511663776294
https://www.zhihu.com/zvideo/1993098511663776294/
https://www.zhihu.com/zvideo/1993098523143594667
https://www.zhihu.com/zvideo/1993098523143594667/
https://www.zhihu.com/zvideo/1993098537517465743
https://www.zhihu.com/zvideo/1993098537517465743/
https://www.zhihu.com/zvideo/1993098486892234343
https://www.zhihu.com/zvideo/1993098486892234343/
https://www.zhihu.com/zvideo/1993098500725031305
https://www.zhihu.com/zvideo/1993098500725031305/
https://www.zhihu.com/zvideo/1993098490436408448
https://www.zhihu.com/zvideo/1993098490436408448/
https://www.zhihu.com/zvideo/1993098516529161082
https://www.zhihu.com/zvideo/1993098516529161082/
https://www.zhihu.com/zvideo/1993098530311652274
https://www.zhihu.com/zvideo/1993098530311652274/
https://www.zhihu.com/zvideo/1993098493712147692
https://www.zhihu.com/zvideo/1993098493712147692/
https://www.zhihu.com/zvideo/1993098508002144540
https://www.zhihu.com/zvideo/1993098508002144540/
https://www.zhihu.com/zvideo/1993098559961192293
https://www.zhihu.com/zvideo/1993098559961192293/
https://www.zhihu.com/zvideo/1993098550414972110
https://www.zhihu.com/zvideo/1993098550414972110/
https://www.zhihu.com/zvideo/1993098533834887714
https://www.zhihu.com/zvideo/1993098533834887714/
https://www.zhihu.com/zvideo/1993098575442371672
https://www.zhihu.com/zvideo/1993098575442371672/
https://www.zhihu.com/zvideo/1993098563652174610
https://www.zhihu.com/zvideo/1993098563652174610/
https://www.zhihu.com/zvideo/1993098483746501953
https://www.zhihu.com/zvideo/1993098483746501953/
https://www.zhihu.com/zvideo/1993098594404812646
https://www.zhihu.com/zvideo/1993098594404812646/
https://www.zhihu.com/zvideo/1993098554739295559
https://www.zhihu.com/zvideo/1993098554739295559/
https://www.zhihu.com/zvideo/1993098566990860514
https://www.zhihu.com/zvideo/1993098566990860514/
https://www.zhihu.com/zvideo/1993098605087711862
https://www.zhihu.com/zvideo/1993098605087711862/
https://www.zhihu.com/zvideo/1993098597860921766
https://www.zhihu.com/zvideo/1993098597860921766/
https://www.zhihu.com/zvideo/1993098572044981804
https://www.zhihu.com/zvideo/1993098572044981804/
https://www.zhihu.com/zvideo/1993098583558332577
https://www.zhihu.com/zvideo/1993098583558332577/
https://www.zhihu.com/zvideo/1993098609001002049
https://www.zhihu.com/zvideo/1993098609001002049/


设计保障:ThreadLocal 本身也做了一些努力,比如在 set()、get()、remove() 的时候,会尝试去清理那些 Key 为 null 的过期 Entry。但这是一种“被动清理”,不能完全依赖。
代码层面:尽量将 ThreadLocal 变量声明为 static final,这样它的生命周期就和类一样长,不会被轻易回收,减少了产生 null Key 的机会。但这并不能替代 remove(),因为线程池复用时,上一个任务的值可能会污染下一个任务。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 10:11:24

Python递归实现阶乘计算

实现功能代码示例def calculate_factorial(n):if n 0:return 1else:return n * calculate_factorial(n - 1)number int(input("Enter a number: ")) print(f"The factorial of {number} is {calculate_factorial(number)}")代码解析递归函数calculate_fa…

作者头像 李华
网站建设 2026/4/23 10:11:04

Pspice安装教程:一文说清64位系统适配问题与对策

Pspice安装实战指南&#xff1a;64位系统下的兼容性困局与破局之道 你有没有遇到过这样的场景&#xff1f; 兴冲冲下载了OrCAD的安装包&#xff0c;准备开始电路仿真学习或项目调试&#xff0c;结果双击 setup.exe ——没反应&#xff1b;右键“以管理员运行”——闪退&…

作者头像 李华
网站建设 2026/4/23 2:59:57

HDI高密度板线路蚀刻操作指南

HDI高密度板线路蚀刻实战全解&#xff1a;从原理到良率提升的深度剖析你有没有遇到过这样的情况&#xff1f;明明设计时留足了线宽余量&#xff0c;做出来的HDI板却频频出现“短路”报警&#xff1b;或者AOI检测发现边缘模糊、线型收缩&#xff0c;返工一批又一批&#xff0c;良…

作者头像 李华
网站建设 2026/4/23 10:09:37

rs232和rs485的区别:抗干扰能力对比说明

工业通信中的“抗干扰王者”之争&#xff1a;RS232为何败给RS485&#xff1f;在自动化车间的某个角落&#xff0c;一台PLC突然停止响应。操作员重启设备、检查线路&#xff0c;却依然无法恢复通信。最终排查发现&#xff0c;问题竟出在那根看似普通的串口线上——它用的是RS232…

作者头像 李华
网站建设 2026/4/23 10:11:08

I2C通信协议热插拔问题解析:零基础了解总线死锁风险

I2C热插拔为何总“卡死”&#xff1f;一文讲透总线死锁的根源与破局之道你有没有遇到过这种情况&#xff1a;系统运行得好好的&#xff0c;突然拔掉一个I2C传感器模块&#xff0c;再插回去时&#xff0c;整个I2C总线就“瘫痪”了——主控读不到任何设备&#xff0c;哪怕重启外设…

作者头像 李华
网站建设 2026/4/23 10:09:55

一文搞懂什么是生成式AI

一、先搞明白&#xff1a;生成式AI到底是什么&#xff1f; 要理解生成式AI&#xff0c;咱们先从“AI的分类”说起。其实AI大致可以分成两类&#xff1a;一类是“判别式AI”&#xff0c;另一类就是“生成式AI”。 判别式AI咱们其实早就接触过了——比如手机相册的人脸识别&#…

作者头像 李华