【发布时间】:2014-04-11 17:58:58
【问题描述】:
我目前正在使用三个 matlab 函数,以使它们在单个 Matlab 会话中同时运行(我知道 matlab 是单线程的),这三个函数分配给单独的任务,我可能很难解释所有此处详细介绍每个函数,但尽量包含尽可能多的信息。
它们是 CONTROL/CAMERA/DATA_DISPLAY 任务,我使用的方法是创建 Timer 对象以使所有函数在不同的回调周期时间内连续回调。
- CONTROL 会通过 wifi 与 udp 端口发送和接收数据,它会检查包的可用性,并不断执行回调
- CAMERA 通过 tcp 连续接收摄像头帧并显示,一个定时器对象 T1 用于此函数刷新捕获帧
- DATA_DISPLAY显示所有接收到的数据,这个会不断刷新,所以这个函数需要另外一个定时器T2来刷新显示
但是我注意到定时器 T2 在执行时阻塞了定时器 T1,并减慢了整个过程。我正在开发一个使用多核 CPU 的系统,我希望 MATLAB 能够利用计算核心并行执行两个计时器对象。
通过在matlab中搜索并行计算工具箱,似乎无法处理无限循环或连续回调,因为代码执行时不会完成并且不显示任何内容,可能我不太清楚如何使用这个工具箱
或者任何人都可以提供将代码重组为更有效结构的任何好主意。
非常感谢
【问题讨论】:
标签: multithreading matlab multitasking