代码见第六部分 void Judge_DeadLock(Resourece_Allocation_Chart *chart)
检查死锁的函数流程图如下所示,一目了然:
其中界面中函数具体包括:
1)刷新线条函数,结合多线程思想,设计了一个将 Qt 中不能被调用的画图函
数的“调用”函数;
由于画线位置不同,Qt 中设计的画线函数是以要画的线段的开头点和末端点
为参数,画出这个线段,所以首先要解决的就是如何画出多个线段,我选择的方
法是通过一个局部变量 r_i * n,n 是各个结点之间的竖直距离,这样通过 r_i
就可以实现画出的线的距离的变化。此外,由于画线函数在 Qt 中被限定为一个
void MainWindow::paintEvent(QPaintEvent *event)函数,且无法被别的函数
调用,那么想要实现变化画图,就用到了我在 Java 编程中常用的多线程思想,
通过两个 Qt 中 mainwindow.h 的全局变量和 Qt 中的 update()函数来实现刷新,
反复画图的功能。