Multithreaded Programming
update 2017-10-09 19:25:34
基本思路
- Identify critical section in which undesirable schedules exist;
- Surround critical section with mutual exclusive locks;
- Minimize the time spent locked in critical sections;
判断是否 critical section 不是经验性的而是确定性的,根据 assembly language 的程序结构。
使用 mutex 一定会让程序变慢,但是会增加 determinism。
关于 Heisenbugs
"Heisenbug" is a bug in a program that is exceedingly difficult to reproduce.
这种bug无法再debug中观察,只能理论分析code。