如何将两个顺序命令和TCL中的其他命令进行并行化?

如何将两个顺序命令和TCL中的其他命令进行并行化?,tcl,Tcl,我有3个C程序(prog1,prog2,prog3),我想从Tcl调用它们。但它们有一些依赖性: 在调用prog2之前,必须先完成prog1 需要在prog3之前调用prog1 在prog3开始执行之前,prog1不会完成(阻止) 在prog2完成之前,prog3不会完成 所以,一些伪代码来展示我想要实现的 (项目1;项目2)& 程序3 我如何在TCL中做到这一点 首先创建一个助手脚本来运行prog1和prog2(这可能是一个预制脚本,而不是动态创建): 然后运行脚本: exec [info n

我有3个C程序(prog1,prog2,prog3),我想从Tcl调用它们。但它们有一些依赖性:

  • 在调用prog2之前,必须先完成prog1
  • 需要在prog3之前调用prog1
  • 在prog3开始执行之前,prog1不会完成(阻止)
  • 在prog2完成之前,prog3不会完成
  • 所以,一些伪代码来展示我想要实现的

    (项目1;项目2)&

    程序3


    我如何在TCL中做到这一点

    首先创建一个助手脚本来运行prog1和prog2(这可能是一个预制脚本,而不是动态创建):

    然后运行脚本:

    exec [info nameofexecutable] prog1prog2.tcl &
    exec prog3
    

    如果您不需要等待程序完成,最后一个exec可以附加一个符号和。

    以下解决方案对我来说很好:

    exec sh -c "prog1; prog2" & 
    exec prog3
    

    这是一个好方法,因为它既好又简单。也许对非POSIX平台的移植性不是很强,但可以完成这项工作。
    exec sh -c "prog1; prog2" & 
    exec prog3