В моем курсе проблемы с многопоточностью объясняются нам с помощью чего-то вроде графиков, отмечают критические точки (точнее, точки, где необходима синхронизация) и объясняют, как вы решаете проблему. Это работает очень хорошо, если вы отметите критические точки, например:
T1 T2 T3
method A method A method A
\ / /
\ / /
critical section 1
/
/
method B
и т. Д.