EPSON 任务同步 改写

来源:互联网 发布:csdn手机客户端 网络 编辑:程序博客网 时间:2024/04/30 20:35
        有时需要在多个任务执行之前来使它们同步。
如果预先知道执行每项任务所需要的时间,它们就可以通过简单地等待由最慢的任务产生的信号来实现同步。然而,如果不知道那个任务是最慢的,就需要使用一个更复杂的同步化机制,如下所示VAL 3程序就是一例。


例如

// N个任务的同步程序此后该程序synchro(num& n, bool& bSynch, num nN)必须在每个要同步的任务中被调用。n变量必须初始化为0, bSynch,false,和要同步的任务数nN。beginn =n + 1// 任务同步等待指令// 确保所有的任务都在这里等待以继续运行wait((n==nN) or (bSynch==true))bSynch = truen =n - 1// 任务释放等待指令// 确保所有的任务都已经继续运行,以清除同步上下文wait((n==0) or (bSynch == false))bSynch = falseend



0 0