我现在做分布式,用四个线程去读同一个文件,我没有互斥读写,没有出现问题,
但是我在线程里去写同一个文件时应该怎么做?四个文件是分别从四个不同的位置读写,相当于把文件分成四块来处理,
线程里这样操作的
int length_1 = 1024;
byte[] bye = new byte[1024];
int size = stream.Read(bye,0,length_1);
lock(filestreamSaveFileName) filestreamSaveFileName.Seek(length1,SeekOrigin.Begin);
while(size >0)
{
lock(filestreamSaveFileName)
{
filestreamSaveFileName.Write(bye,0,size);
filestreamSaveFileName.Flush();
}
if(size<1024)
break;
size = stream.Read(bye,0,length_1);
}
是从服务器端穿过来的文件流,
filestreamSaveFileName.Seek(length1,SeekOrigin.Begin);是定位到文件的相应位置
我开始没有用lock,结果只有线程四发回了数据,写进文件响应位置