移动端的实质

Swift 的 class 与 struct、值语义、进程与线程、堆与栈: iOS 面试复习题 ,20190908

Swift 的 class 与 struct

Swift 的值语义,value semantic

操作系统: 进程与线程

进程 = 资源管理 + 线程, 进程是资源分配单位,线程是 CPU 调度单位

进程是操作系统中独立运行的基本单位 线程是操作系统中,更小的能独立运行的基本单位

到底什么是进程?怎么理解进程?

一般,可以把运行的程序,看成进程。 程序在整个执行过程中的描述,是进程。 程序在运行过程中,会消耗各种资源,会占用 CPU、内存和网络,会使用文件系统 I/O

进程就是运行的程序的执行过程

为什么要有进程?

最初的操作系统,只能支持跑一个程序。 随着计算机的发展,CPU 的能力越来越强,内存越来越多。可以在内存中,放入更多的可以运行的程序。 操作系统中,各个运行的程序的状态。用程序来表示,不够准确,需要新的概念? 因为可能存在内存中,一个程序跑了多份的情况。 内存中,一个程序的多个实例,怎么来清楚的表示出来呢?

进程的概念,就出来了。进程用来表示程序整个的执行过程

我们写的程序,编译为可执行程序,放在文件系统里面,格式是可执行文件,他是静态的。 只有当我们的操作系统,把可执行程序,调入我们的内存中之后,让这个程序能够执行起来。执行,也就是这个程序能够通过 CPU , 来执行程序中的一条条指令,然后对相应的数据,进行处理,完成一定的功能。 这个过程,是一个动态执行的过程,我们称为进程。

标准答案:一个具有一定独立功能的程序,在一个数据集合上的,一次动态执行过程

这整个的过程,就是进程

为什么要有线程?

多进程,消耗太大。 进程之间,他们的地址空间是独立的,一般通过沙盒保护。 进程间通信,交换数据,需要通过操作系统,开销大,过程相对复杂。 多线程,就小了一些。 多线程除了实现了并发,还共享相同的地址空间,也就是共享相同的资源。 一个线程产生的数据,另一个线程可以很容易地拿到。 线程间通信,比较简单。

什么是线程?
线程是进程中的一条执行流程
从资源组合的角度看:

进程,就是用来管理资源的。资源包括地址空间(代码段、数据段)、打开的文件、访问的网络。 把进程执行的功能、执行的状态,做一些拆分,交给线程来管理。

从运行的角度看:

线程就是,代码在这个资源平台上的一条执行流程。

进程 = 资源管理 + 线程

进程除了管理资源,还有一系列的线程,完成执行的过程。

一个进程的多个线程,共享进程所拥有的所有资源。

线程 = 进程 - 资源管理

线程,完成了控制流的管理

区别:
  • 进程是资源分配单位,线程是 CPU 调度单位

  • 进程拥有一个完整的资源平台,

  • 线程只独享必不可少的资源,如寄存器和栈,用于维持自己的控制流。进程的资源,多个线程共享

  • 线程能减少并发执行的时间和空间开销 例如: 线程的创建时间比进程短 因为进程在创建过程中,需要创建其他的管理信息。如: 内存要怎么管理,打开的文件要怎么管理 线程要创建的时候,直接重用该线程所属的进程资源,这些资源已经管理好了

操作系统: 计算机的堆和栈

对象堆,函数栈

<hr>

<hr>

<hr>

简单套路出一款 iOS 小说阅读器,txt 文档,CoreText 排版

有什么:

开发一款 iOS 小说阅读器的五个点,
开发一款 iOS 小说阅读器的五个知识点 ,txt 文档,CoreText 排版,
开发一款 iOS 小说阅读器,常见的五个技术点 

知识点 00-05

主要流程是什么

怎么做分页?

动画怎么做?

所谓的全本解析怎么做?快速解析又怎么做?

DZMReadTextParser.parser(url: url) { \[weak self\] (readModel) in  
            let vc  = DZMReadController()  
            vc.readModel = readModel  
            self?.navigationController?.pushViewController(vc, animated: true)  
        }

给一个路径 URL,通过 `parser` 方法捞出一个书本的 readModel, 把他交给 DZMReadController,就完了

第二步, 

            let content = DZMReadParser.encode(url: url)```  
拿着路径 URL,去编码出模型 

有什么数据结构,双链表。上一章,下一章

找 bug

本文基于 dengzemiao/DZMeBookRead

  
开发一款 iOS 小说阅读器,txt 文档,CoreText 排版,知识点 05 - 09

转载于:https://my.oschina.net/u/3103280/blog/3100399

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值