在多个线程中使用相同的内存块是否安全,部分如下:
const
BIFFER_SIZE = 1024;
var
ABuffer :PChar;
ABufferWrite :PChar;
ABufferEnd :PChar;
begin
GetMem(ABuffer, BUFFER_SIZE);
ABufferEnd := ABuffer + BUFFER_SIZE;
ABufferWrite := ABuffer + BUFFER_SIZE div 2;
end;
假设线程 0 在 [ABufferWrite..ABufferEnd] 之间进行写入,而线程 1 在 [ABuffer..ABufferWrite-1] 之间进行读取。
我认为没关系。我对吗?