首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

linux 多线程把内存储器中的内容写入文件怎样效率最高呢.

2013-07-09 
linux 多线程把内存中的内容写入文件怎样效率最高呢...???如题,经测试,我开一个线程写内存中的内容到磁盘,

linux 多线程把内存中的内容写入文件怎样效率最高呢...???
如题,经测试,我开一个线程写内存中的内容到磁盘,写效率有100M/s,但如果我开2路或者多路线程,写效率就只有10M/s了,我要怎么做,在开多线程的时候效率才高呢(至少要达到50M/s,当然越高越好),求大神指点...!!!!
我的写入线程函数如下:

void run()
{
int fd2;
char buffer[10] = {0},storeRout[50] = {0};
printf("thread.........write........fun4\n");

strcat(storeRout, StoreRoute);
strcat(storeRout, "2.txt");
//printf(".................storeRout = %s\n", storeRout);
fd2 = open(storeRout, O_CREAT|O_RDWR|O_EXCL, 0777);
if(0 > fd2)
{
if(EEXIST == errno)
{
fd2 = open(storeRout, O_RDWR);
if(-1 == fd2)
{
perror("fd2....1.....open");
exit(-1);
}
}
else
{
perror("fd2....2....open");
exit(-1);
}
}

while(1)
{
write(fd2, buffer, writeBuf);
}
}
Linux 多线程 io读写
[解决办法]
我说过了, 普通磁盘单线程4KB每write最快,同时写多文件的话注意做内存cache到足够大后顺序写出到单文件,避免频繁在文件间切换引起磁道滑动。

热点排行