Я новый ios, и я не знаю, как производительность NSThread многопотоковая на IOS. Я есть функцияМногопоточность медленная?
-(void) writeBlock:(NSString *)srcPath toPath:(NSString *)destPath fromIndex:(int)fIndex toIndex:(int)tIndex
{
//create file handle for srcPath and destPath
for(int i=fIndex;i<=tIndex;i++){
//read from source filehandle
//write to dest filehandle
}
//close filehandle.
}
Если я создать одну нить для вышеупомянутой функции, время для выполнения этой функции является 1 секунда. Но когда я создаю:
for(int i=0;i<20;i++)
{
[NSThread detachNewThreadSelector: @selector(writeBlock:) toTarget:self withObject:myObject];
//for each thread, tIndex-fIndex is the same with tIndex-fIndex of single above thread
}
Время выполнения 20 потоков является 13-16seconds. Я думаю, что время будет 1-5 секунд. Многоминутный поток медленный? Может кто-нибудь мне помочь? Большое спасибо
Есть некоторые накладные расходы, связанные с нерестами новых потоков. Кроме того, если все эти потоки пытаются читать из файловой системы (возможно, тот же файл?), Это также приведет к появлению дополнительных накладных расходов, поскольку они борются за доступ к файловой системе. – UIAdam