以下是一个问题:是否安全部分地在多个线程中使用相同的内存块?
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] 范围内读取。
我认为这是可以的。我对吗?