jyy第四节课用可视化的方式展示出线程之间的并发关系,让我大吃一惊,真的体会到“会编程,你就拥有了全世界”。我想我也要复刻编译成功一次,亲眼看到这份关系表,体会这编程的魅力。
但是这个过程非常艰辛遇到了很多问题,趁我现在还有一些记忆赶紧写下来。
首先这个python文件是需要python3.9及以上版本的,可以在终端输入python3看看版本,如果太低需要更新。可以参考下面的链接,只需要把对应python的版本改了就可以,如果最后两步pip3和python3已经存在,那么删除了在建立符号链接就可以了。
centos7下安装python3.8 - 简书 (jianshu.com)https://www.jianshu.com/p/15f40edefb13 由于jyy没有在课件中放出来visualize.py的链接,这里给出来链接地址。https://jyywiki.cn/pages/OS/2022/demos/visualize.py
https://jyywiki.cn/pages/OS/2022/demos/visualize.py 我们在用视频中的语句编译时
python3 ./model-checker.py ./mutex-bad.py | python3 visualize.py
可能会遇到:
- 报错astor,只需要pip3 install astor
- 报错graphviz,需要先 sudo yum install graphviz 然后 pip install graphviz。一个是框架一个是库都需要有。
- 报错编码格式。(这个我找了半天),可以在341行处,将readtxt中加入参数encoding=‘Lartin-1’(这个格式是报错中推荐的编码格式)。
解决了上述问题就会发现,编译成功了出现了html格式的数据流打印在了屏幕上。然后可以通过数据流重定向的方法将数据输出成文件。
然后在我的终端使用视频中的open是打不开html文件的,所以我改用了firefox,成功打开了html文件,直观看到了线程的并发过程。jyy牛牛牛!!!