如何同时运行多个tcl脚本

时间:2016-05-13 09:12:21

标签: multithreading parallel-processing tcl

我想同时运行四个tcl。在shell中,我可以使用“&”跑步。 tcl中有什么东西像“&”同时运行?我只想在一个终端中运行四个独立的tcl,而不想使用多线程。

1 个答案:

答案 0 :(得分:1)

要同时运行,您必须使用多个进程或多个线程(或多个计算机)。 shell的&使用多进程方法。在Tcl中,您也可以使用&,但只能使用启动子进程的exec命令(它也必须是 last 参数IIRC)。假设您已将代码放入四个Tcl脚本a.tclb.tclc.tcld.tcl,那么您将与它们并行启动它们:< / p>

exec [info nameofexecutable] a.tcl &
exec [info nameofexecutable] b.tcl &
exec [info nameofexecutable] c.tcl &
exec [info nameofexecutable] d.tcl &

传递任何参数并设置stdio重定向可能还有一些细节,但这就是它。

您也可以使用线程,这几乎就是这样做的:

package require Thread

thread::create [list source a.tcl]
thread::create [list source b.tcl]
thread::create [list source c.tcl]
thread::create [list source d.tcl]

有一些细节可以处理检测所有脚本何时完成,但它并不复杂。