码迷,mamicode.com
首页 > 移动开发 > 详细

iOS 多线程 自动释放池常见面试题代码

时间:2017-02-12 18:31:30      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:依次   pen   cas   公司   内存   ping   int   color   ++   

同步:代码依次执行,一个人执行多个任务,也是依次执行。一个人在同一时间只执行一个任务

异步:可以同时执行多个任务

进程:指在系统中运行的应用程序,每个进程都是独立的,都有独立的且安全的运行空间

线程:一个进程可以有多个线程,但只有一个主线程。进程的任务都是在线程里面完成的。

进程,线程与多线程之间的关系?

进程=公司     线程 = 员工    多线程 = 老板

多线程可以解决程序阻塞问题,也可以提高程序的执行效率

 

自动释放池常见面试题代码

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];

    }

    }

 

iOS 多线程 自动释放池常见面试题代码

标签:依次   pen   cas   公司   内存   ping   int   color   ++   

原文地址:http://www.cnblogs.com/lcl15/p/6391359.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!