我试图并行运行两个程序。由于TCL是口译员,它将逐一处理程序。有人可以用一个例子解释我如何在TCL中使用多线程?如何在TCL中使用多线程?
1
A
回答
7
这些天,通常的方式做多线程在Tcl是利用其Thread
extension —它正在与Tcl的核心而发展起来的,但在某些平台上(如各种基于Linux的操作系统),您可能需要安装一个单独的包来获得这个扩展可用。
The threading modelThread
扩展实现是“每个解释器一个线程”。这意味着,每个线程只能“托管”一个Tcl解释器(以及它的子解释器的数量不限),但任何线程都不能执行的代码可以访问其他线程中托管的解释器。这反过来又意味着当你在Tcl中使用线程时,你必须掌握多个解释器的思想。
的经典方法在不同的线程运行的解释器之间的数据交换是消息传递:您发布脚本在不同的线程上运行的目标解释的输入队列然后等待回复。另一方面,线程共享变量(通过锁定实现共享内存)也可用。另一个可用功能是支持线程池。
阅读"Tcl and threads" wiki页面,Thread
's extension manual pages。
代码示例位于wiki上。这里只是one of them。
请注意,如果你的程序,你认为哪,有parrallel中运行,大多是I/O密集型(也就是说,他们从网络上读到的东西和/或送东西有),而不是受CPU限制的(执行繁重的计算)时,使用基于事件的方法进行处理可能会获得更好的结果:Tcl内置了对事件循环的支持,并且您可以在下一个块时使Tcl执行您的代码的数据可以从通道(如网络套接字)读取或写入通道。
相关问题
- 1. 如何在tcl中创建线程8.4
- 2. 如何在TCL中使用“eval”程序?
- 3. 多线程调用函数定义在C从TCL线程
- 4. 如何在同一类中使用多线程Java多线程?
- 5. 如何在laravel中使用多线程?
- 6. 如何在Quartz.net中使用多线程
- 7. 如何在wp7中使用多线程?
- 8. 如何在php中使用多线程
- 9. 如何在Java中使用多线程
- 10. 在tcl线程中调用proc
- 11. 如何使用tcl线程作为进程间通信方法?
- 12. 如何使用多线程
- 13. 如何使用多线程
- 14. 如何使用多线程
- 15. 如何使用多线程
- 16. 如何使用多线程来有效地使用多线程
- 17. Java多线程中如何使用CountDownLatch?
- 18. Tcl/tk - 如何使线程中的yesno messageBox可见
- 19. 如何使用TCL
- 20. 如何使用TCL
- 21. 如何使用tcl
- 22. 如何使用TCL
- 23. 如何在多线程应用程序中使用aiopg池?
- 24. 如何在多线程应用程序中使用Timer
- 25. 如何在多线程应用程序中有效使用RestTemplate?
- 26. 如何在tcl中使用eval语句
- 27. 如何在TCL的regsub中使用expr?
- 28. 在Tcl中,来自多个线程的seg故障需要Expect
- 29. 如何在Clion中启用多线程?
- 30. 如何在C#中使用BackgroundWorker类使用多线程?
这个问题要求[this obligatory reference](http://whathaveyoutried.com) – kostix