华少的博客

谁的头顶上没有灰尘,谁的肩上没有过齿痕

0%

 

前言

线程知识

线程是任务分解成不同的工作单元分配给线程去执行,解决了多任务并发执行的问题,提高了系统性能。在现代交互式系统中,还存在大量的未知不确定的异步事件,这时候线程是一直是出于等待状态的,直到有事件发生才会唤醒线程去执行,执行完成后系统又恢复到以前的等待状态。

如何控制线程在等待和执行任务状态间无缝切换,就引入了RunLoop的概念。

阅读全文 »

前言

客户端网络层交互流程:

  • 获取参数,统一配置
  • 根据API配置公共参数
  • 构造网络请求
  • 发送网络请求
  • 获取返回结果
  • 展示数据

注:此处还应该有个 数据持久化 流程,因项目业务层逻辑及存储方案各不相同,本篇中不展开介绍
另:本篇幅中暂时只涉及到HTTP的请求,TCP及UDP的网络交互处理又不一样,需要考虑的也不相同(如:TCP考虑包顺序处理及回调分发问题,UDP考虑丢包及无序处理)

阅读全文 »

工作

14年底到15年年初的工作一言难尽,自己从嵌入式转到iOS开发,新的平台新的部门都需要重新学习和提高,压力可想而知。年初终于在我们大C司定岗,正式成为一个iOS开发,非常感谢我的三位iOS启蒙导师(李思哥哥、陆爷、彦群),他们帮助我跨过前期的障碍,也看到移动开发技术的未来。总体来讲,自己看到既年轻又活跃的天空,跟着团队也逐步认识到了一个创业团队的磨合期和碰撞期。风云变幻,莫笑少年愁

阅读全文 »

什么是死锁

死锁(deadlock) 通常是当多个线程在相互等待着对方的结束时,就会发生死锁,这时程序可能会被卡住。此时就导致了deadlock!

阅读全文 »

需求背景

为了区分线上版本、测试版本以及调试版本,我们在开发过程中一般会修改bunlde Id以便在一个设备上安装不同版本的App。然而问题来了,如何快速区分出桌面上的App是什么版本呢?最直观的就是改变App图标,达到显而易见的目的。

阅读全文 »