(中文配音)编程中最难以捉摸的Bug:竞态条件

合集 · 直观理解计算机技术【CoreDumped】 (68)

  1. 11:03
    代码中指定变量类型为何如此重要?
  2. 13:46
    栈为何如此之快?
  3. 17:53
    堆为何如此之慢?
  4. 19:56
    动态数组的内部机制(ArrayList VS LinkedList)
  5. 15:37
    探索计算机并发与多任务处理的历史
  6. 12:54
    晶体管是如何运行代码的?
  7. 16:12
    晶体管是如何记忆数据的?
  8. 18:47
    制作一个CPU来运行程序
  9. 11:23
    计算机如何将字符串转换为数字
  10. 17:18
    动态随机存取存储器(DRAM)的工作原理
  11. 16:05
    计算机处理器是如何运行条件和循环的?
  12. 6:51
    一个程序不是一个进程
  13. 14:52
    深入理解进程,如何进行上下文切换?计算机科学中最深刻和最成功的想法之一。
  14. 20:20
    处理器内部的单个位如何保护操作系统的完整性?
  15. 13:14
    计算的心跳:时钟如何推动 CPU 前进?
  16. 14:22
    英语原声版-计算的心跳:时钟如何推动 CPU 前进?
  17. 14:15
    (英语原声)进程间通信:共享内存或发送消息
  18. 12:29
    (中文配音)进程间通信:共享内存或发送消息
  19. 14:59
    (中文配音)为什么单核处理器需要线程?
  20. 16:07
    (英语原声)为什么单核处理器需要线程?
  21. 9:26
    (中文配音)多核系统上的线程
  22. 11:27
    (英语原声)多核系统上的线程
  23. 11:52
    (中文配音)为什么应用程序是特定于操作系统的?
  24. 13:09
    (英语原声)为什么应用程序是特定于操作系统的?
  25. 13:15
    (英语原声)硬件如何在多任务处理中协助软件?
  26. 11:29
    (中文配音)硬件如何在多任务处理中协助软件?
  27. 20:34
    链表的一个实际应用
  28. 45:02
    让你的电脑运行更流畅的奇妙算法
  29. 43:38
    (流畅中文配音)让你的电脑运行更流畅的奇妙算法
  30. 19:41
    (原声双语字幕)当程序调用 sleep() 时会发生什么?
  31. 17:57
    (流畅中文配音)当程序调用 sleep() 时会发生什么?
  32. 20:40
    这个简单算法驱动了真正的解释器:Pratt Parsing
  33. 18:19
    (双语字幕)编程中最难以捉摸的Bug:竞态条件
  34. 19:23
    (流畅中文配音)编程中最难以捉摸的Bug:竞态条件
  35. 16:02
    (中文配音)阻止内存攻击的底层电路
  36. 14:51
    (英语原声)阻止内存攻击的底层电路
  37. 18:04
    为什么有些项目会使用多种编程语言?
  38. 19:32
    为什么有些项目会使用多种编程语言?
  39. 17:15
    别再杀进程了!让 Ctrl+C 变成“喵”……(用信号实现)
  40. 19:23
    别再杀进程了!让 Ctrl+C 变成“喵”...(用信号实现)
  41. 19:05
    80 年代避免竞态条件的算法(以及它为何失败)
  42. 19:43
    80 年代避免竞态条件的算法(以及它为何失败)
  43. 22:10
    CPU如何与众多不同设备交互?
  44. 23:52
    (中文配音)CPU如何与众多不同设备交互?
  45. 14:04
    (中文配音)你每天都在用的奇特CPU操作
  46. 13:04
    你每天都在用的奇特CPU操作
  47. 18:04
    (中文配音)历史如何塑造了我们今天仍在使用的编程术语?
  48. 17:42
    (英语原声)历史如何塑造了我们今天仍在使用的编程术语?
  49. 16:41
    为什么有些底层项目里会充满这种奇怪的代码?
  50. 16:39
    (中文配音)为什么有些底层项目里会充满这种奇怪的代码?
  51. 21:35
    编译与解释代码如何共处同一程序中?
  52. 21:30
    (英语原声)编译与解释代码如何共处同一程序中?
  53. 17:09
    【双语字幕】Core Dumped 常见问题的集中回答
  54. 13:36
    【双语字幕】90年代的设计决策阻碍了Python并行化
  55. 12:01
    【中文配音】90年代的设计决策阻碍了Python并行化
  56. 17:51
    Linux创建进程的奇怪方式
  57. 18:14
    【中文配音】Linux创建进程的奇怪方式
  58. 19:49
    CPU如何运行函数?
  59. 19:38
    【中文配音】CPU如何运行函数?
  60. 17:15
    没有人解释的问题:内核的边界在哪里?
  61. 19:36
    【英语原声】没有人解释的问题:内核的边界在哪里?
  62. 35:49
    硬件如何让线程问题不再那么棘手?
  63. 19:47
    为什么在macOS、Windows和Linux上安装应用程序如此不同?
  64. 24:00
    游戏公司真的能破坏你的电脑吗?
  65. 10:43
    一个视频说透“架构”:为什么你的程序换个CPU就可能跑不了?
  66. 14:45
    CPU如何执行有符号和无符号运算?
  67. 19:11
    简单指令, 奇妙算法
  68. 9:26
    当CPU遇到它不认识的指令,会发生什么?😱【底层原理】
Description
原始内容来自:https://www.youtube.com/watch?v=bhpzTWtee2A

视频内容总结:
- 深入讲解了CPU调度和并发编程中的竞争条件问题
- 通过实际案例演示了多线程环境下共享数据访问的问题
- 分析了字符串操作和变量读写中的非原子性问题
- 解释了抢占式操作系统如何导致竞态条件
- 展示了竞态条件的不可预测性和危险性
- 预告了后续将介绍防止竞争条件的解决方案

标签:
#并发编程 #多线程 #竞争条件 #系统编程 #CPU调度 #线程安全 #软件开发 #编程

Comments

一切皆有可萌 2025-06-12

小明遇到了一个问题,小明尝试使用多线程解决问题。 现在,小遇到明两问个了题。

♥ 305 ↩ 9

乌哔哩 2025-06-07

遇到过同样的代码在两台软硬件同配置的机器上运行结果不同[冷]

♥ 49 ↩ 7

FeOAr 2025-06-13

经典之谁在偷偷改我的数据

♥ 43

过期的荼蘼 2025-06-20

一进来就看到幽默弹幕“我觉得吧,都多核时代了,也不用串行执行吧!”你电脑几个核?打开任务管理器看看现在有几个程序?更别提每个程序里有一堆线程在跑,怎么就不串行了?

♥ 38 ↩ 1

不务正业的爬瓦 2025-06-13

再叠加多核运算异步运算 想想都刺激

♥ 15

纸墨笔 2025-06-06

我好奇并发是操作系统控制完成还是CPU电路控制完成?

♥ 10 ↩ 6

bili_4337507 2025-06-17

lock指令锁内存总线实现互斥锁

♥ 9

ciel-system 2025-06-30

这个51单片机写时间片也遇到了,用定时器中断计时1ms、10ms、100ms、1s在主循环中使用,主循环开头进行标志调用然后对中断标志变量清零,但是如果刚好例如1s的时间片中断发生在调用和清零之间时会被清零,对于主循环来说就是上次主循环的1秒标志为0,然后这次明明到了1秒,但是由于被清零,所以这次也为0,然后实际体现就是运行过程中随机的1秒延长了一次。 最后解决方法是:启用一个更高级优先级的中断,主循环在执行赋值和清零时是启用该中断进行,防止被打断。

♥ 8 ↩ 2

凉处210 2025-06-06

充个电支持一下

♥ 7 ↩ 1

内核寄存器 2025-06-06

中文配音,棒[惊讶]

♥ 3

是十三啦 2025-06-10

期待下一期[孤独摇滚_喜欢][孤独摇滚_喜欢][孤独摇滚_喜欢]

♥ 3

巨牙小白兔 2025-06-24

啥时候能硬件内置消息队列, 核间通信全post, 三级缓存各用各的

♥ 2 ↩ 1

库柏锡拉 2025-06-06

up主用什么CPU?

♥ 2 ↩ 3

神狙远战 2025-06-06

来了[吃瓜][吃瓜]

♥ 2 ↩ 1

中国复兴加油 2025-10-05

Python 的协程不是竞争的,但也导致Python的并发编程心智过重,据说虚拟线程能救一救,但也还没边呢。

♥ 1

YuFeng_86 2025-06-06

[打call]

♥ 1

鹤宏_ASL 2025-06-13

小明刚好遇到了以上的问题,小明要使用多线程来解决,结果多了更多的问题[笑哭]

♥ 1

胡桃KRM 2025-06-17

那这种情况有没有解决方法呢,信号量吗

↩ 1

阳光的殇胤 2025-06-25

@AI视频小助理 总结一下