二十一

NSOperation:
NSOperation基于GCD(中央调度组),比GCD多了一些更简单实用的功能(设置最大并发数/暂停取消/继续,完成跨队列的依赖关系),更加面向对象。
GCD代码简洁,GCD提供的dispatch_after支持调度下一个操作的开始时间而不是直接进行睡眠
GCD没有操作依赖,没有操作优先级(有队列优先级)GCD中只能区分不同任务队列的优先级,如果需要区分block任务的优先级,也需要大量的复杂代码
GCD没有KVO。NSOperation可以监听一个Operation是否完成或者取消,比GCD更能有效掌控后台任务,NSOperation中可以随时取消已经设定要准备执行的任务(已经开始的就无法阻止了)GCD无法停止
NSOperation能够进行继承,在这之上添加成员变量与成员方法,提高整个代码的复用度,比简单讲block任务排入执行队列更有自由度,能够在其之上添加更多自制定的功能
线程安全:一般就是资源共享和抢占问题,例如电商库存和火车票的问题,通常采用枷锁方式来解决,一种是互斥锁可以保证读写安全,但是效率低,还有一种原子锁,只能保证写

存储技术:
存储技术
FMDB; 获取数据库路径,创建数据库 打开数据库和创建表 进行增删改查的操作 数据库的查询:比较复杂 工作中用的最多的就是模糊查询,也就是关键字查询,查询语句拼接上要查询的语句,执行成功后,遍历结果集,坑:查询语句拼接要用StringWithFormat来拼接,如果有%特殊字符,需要%转义。

CoreData:CoreDataStack CoreData技术堆栈 本质:三个核心类
NSManagedObjectContext:管理对象上下文、NSPersistentStoreCoordinator:存储调度器 NSManagerdObjectModel:对象管理模型
NSPersistentContainer(新增):存储容器 封装CoreDataStack三大核心类使CoreData使用更加简单
CoreDataStack(管理上下文):负责管理模型对象(数据库所有的工作都是该对象执行的)-----指令:存储----->NSPersistentStoreCoordinator存储调度器(负责调度存储器)------调度------>NSPersistentStore存储器(真正负责存储的)--------存储------->SQLite数据库(内存环境中)----------持久化----->系统磁盘(sql文件)
CoreData:对于KVC和KVO完整且自动化的支持,除了为属性整合KVO和KVC访问方法之外,还整合了适当的集合访问方法来处理多值关系。

OSI七层模型:
OSI将整个通信功能划分为7个层次,划分的原则如下:
1,网络中所有节点都划分为相同的层次结构,每个相同的层次都有相同的功能。
2,同一节点内各相邻层次间可通过接口协议进行通信。
3,每一层使用下一层提供的服务,并向它的上层提供服务。
4,不同节点的同等层按照协议实现同等层之间的通信。

网络访问层(物理层,数据链路层)
网络层
传输层
应用层(会话层、表示层、应用层)

TCP/IP协议
传输层---->TCP/UDP 应用层----->HTTP/HTTPS----socket----->TCP/UDP

TCP和UDP:
TCP 是面向连接的,UDP 是面向无连接的
UDP程序结构较简单
TCP 是面向字节流的,UDP 是基于数据报的
TCP 保证数据正确性,UDP 可能丢包
TCP 保证数据顺序,UDP 不保证

TCP的三次握手:
TCP三次握手
例子:微信,QQ
主机A向主机B发出连接请求数据包::“我想给你发数据,可以吗?”,这是第一次对话;主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。三次对话的目的是使数据包的发送和接收同步,经过三次对话之后,主机A才向B正式发送数据

Scoket连接和HTTP连接的区别:
Scoket连接和HTTP连接的区别:
HTTP协议基于TCP连接,是应用层协议,主要解决如何包装数据。Scoket是对TCP/IP协议的封装,Scoket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。
HTTP连接:短连接,客户端向服务器发送一次请求,服务器响应后连接断开,节省资源。服务器不能主动给客户端响应(除非采用HTTP长连接技术),iPhone主要使用类NSURLConnection。
Socket连接:长连接,客户端跟服务器端直接使用Socket进行连接,没有规定连接后断开,因此客户端和服务器段保持连接通道,双方可以主动发送数据,一般多用于游戏。socket默认连接超时时间是30秒,默认大小是8k(理解为一个数据包大小)。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值