我是新的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