我想同时运行四个tcl。在shell中,我可以使用“&”跑步。 tcl中有什么东西像“&”同时运行?我只想在一个终端中运行四个独立的tcl,而不想使用多线程。
答案 0 :(得分:1)
要同时运行,您必须使用多个进程或多个线程(或多个计算机)。 shell的&
使用多进程方法。在Tcl中,您也可以使用&
,但只能使用启动子进程的exec
命令(它也必须是 last 参数IIRC)。假设您已将代码放入四个Tcl脚本a.tcl
,b.tcl
,c.tcl
和d.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]
有一些细节可以处理检测所有脚本何时完成,但它并不复杂。