Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading Matlab中的多线程技术_Multithreading_Matlab - Fatal编程技术网

Multithreading Matlab中的多线程技术

Multithreading Matlab中的多线程技术,multithreading,matlab,Multithreading,Matlab,我有以下程序流程,带有一个大的数据块D S1 -> S2 -> S3 -> S4 其中S1和S4都是读写DS2和S3都只读取D 现在我想在matab S1 -> S2 -> Wait for S2 and S3 to finish -> S4 | | +-> S3 -+ 其中,S2和S3并行执行。我的问题是如何在不复制D的情况下实现这一点,因为这是不必要的(不需要锁定),而且它很大。使用Matlab代码是不可能

我有以下程序流程,带有一个大的数据块
D

S1 -> S2 -> S3 -> S4
其中
S1
S4
都是读写
D
<代码>S2和
S3
都只读取
D

现在我想在
matab

  S1 ->  S2  -> Wait for S2 and S3 to finish -> S4
     |       |
     +-> S3 -+

其中,
S2
S3
并行执行。我的问题是如何在不复制
D
的情况下实现这一点,因为这是不必要的(不需要锁定),而且它很大。

使用Matlab代码是不可能的。matlab中没有多线程

存在并行计算工具箱,但该工具箱使用多个进程,这需要至少将D的已使用部分复制到工作人员


<> P>多线程的惟一实现是将S2和S3作为一个MEX函数(C或C++代码),使用OpenMP或类似的方法。我可能错了,但据我所知,Matlab在内部执行了一些多线程处理,例如使用figure回调和
uiwait
。我想知道是否有人可以利用它在Matlab中“模拟”多线程……使用
uiwait
可能会得到与基于
timer
提出的解决方案相同的结果