zoukankan      html  css  js  c++  java
  • 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];

        }

        }

     

  • 相关阅读:
    随笔 Frida
    [转]某种传染病第一天只有一个患者,前五天为潜伏期,不发作也不会传染人 第6天开始发作,从发作到治愈需要5天时间,期间每天传染3个人 求第N天共有多少患者 Frida
    sql 将具有相同ID的多条记录组合成一条记录 Frida
    【转】小谈C#.NET下的爬虫(蜘蛛)技术 Frida
    ECMAScript基础1 Frida
    显示隐藏层 jquery Frida
    SQL语句备份和还原数据库
    Hello!Blog~
    23个MySQL常用查询语句
    SQL Server 2008压缩数据库日志文件
  • 原文地址:https://www.cnblogs.com/lcl15/p/6391359.html
Copyright © 2011-2022 走看看