3
在Matlab(2012b)中,有沒有辦法在發送數據之前暫停由SPMD創建的一個線程?因爲線程2只有有限大小的緩衝區來接受來自線程1的數據,並且根據matlab,labSend()將在數據傳輸完成之前返回,這意味着理論上線程1可以繼續向線程2發送數據,直到系統運行內存不足:在Matlab中使用SPMD發送數據
我想要做的是這樣的:
spmd (2)
if labindex==1
%...
if (BufferAtLab2isNotFull)
labSend(data, 2);
end
%...
elseif labindex==2
if (BufferNotFull)
labReceive(data, 1);
end
%...
end
end
在C/C++中,它是很容易做到這一點與共享內存多線程,但在MATLAB現在看來,這是相當很難,因爲沒有共享資源來檢查。