1

有没有办法让 unit3.thread() 在其他两个线程之后运行?

run() is also
{
    start unit1.thread();
    start unit2.thread();
    unit3.thread();
};

我希望单元 1 和单元 2 中的线程并行运行,并希望线程 3 在它们都完成后运行。但是,由于 run() 不是一种耗时的方法解决方案,例如:

all of
{
    {
        unit1.thread();
    };
    {
        unit2.thread();
    }
};
unit3.thread();

不允许。

有没有办法让 unit3.thread() 等到前面的线程完成?

4

1 回答 1

0

您可以通过在完成时手动触发事件来完成此unit1操作unit2

extend sys {
   event u1_done;
   event u2_done;
   run() is also {
     all of {
       { unit1.thread(); }
       { unit2.thread(); }
     };
   };
   on @u1_done and @u2_done unit3.thread();
};

然后在完成unit1unit2发出这些语句:

emit u1_done;

unit2

emit u2_done;

我现在无法访问 Specman,因此语法可能不准确,但是我使用了这种技术。

于 2016-01-05T16:29:02.733 回答