iOS 多線程 自動釋放池常見面試題代碼


同步:代碼依次執行,一個人執行多個任務,也是依次執行。一個人在同一時間只執行一個任務

異步:可以同時執行多個任務

進程:指在系統中運行的應用程序,每個進程都是獨立的,都有獨立的且安全的運行空間

線程:一個進程可以有多個線程,但只有一個主線程。進程的任務都是在線程里面完成的。

進程,線程與多線程之間的關系?

進程=公司     線程 = 員工    多線程 = 老板

多線程可以解決程序阻塞問題,也可以提高程序的執行效率

 

自動釋放池常見面試題代碼

for (int i = 0; i < 100000; ++i) {

        NSString *str = @"Hello World";

        str = [str stringByAppendingFormat:@"- %d",i];  //字符串拼接

        str = [str uppercaseString];   //將字符串替換成大寫

    }

如果循環的次數過大,會出現什么問題?該怎么解決?

  會出現內存溢出,循環內部創建大量的臨時對象,沒有被釋放

   每次循環都將上一次創建的對象release

for (int i = 0; i < 100000; ++i) {

       @autoreleasepool{

        NSString *str = @"Hello World";

        str = [str stringByAppendingFormat:@"- %d",i];

        str = [str uppercaseString];

    }

    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM