关于GCD的使用(该文章仅作为个人笔记,更多原理资料请查看文章尾部的《相关资料》)
来源:互联网 发布:java打印预览excel 编辑:程序博客网 时间:2024/05/16 11:52
多线程相关概念:
1、进程与线程
2、多线程中会出现的问题
多线程编程技术的优缺点比较
相关的dispatch
1、dispatch_async:多用于避免界面在处理耗时操作时卡死,比如网络数据读取、IO、数据库读写。(然后可以通知主线程更新界面)
2、dispatch_group_async
可以用来监听一组任务是否全部完成了,完成时通知执行其他操作。示例如下:
3、dispatch_barrier_async
dispatch_barrier-async是当在它前面的任务执行结束后,dispatch_barrier-async才执行;并且在dispatch_barrier-async后面的任务必须等它执行完之后,它才执行。
4、dispatch_apply:执行某个代码片段N次
dispatch_apply(N ,globalQueue , ^(size_t index)
{
//执行N次
})
5、当程序进入后台时,注册后台任务
在没有使用GCD时,当App被按Home键退出后,app仅有最多5秒的时间做一些保存或清理资源的工作。
但是在使用GCD后,app最多可以有10分钟的时间在后台长久的运行。
关于进程和线程内存:
1、系统中的每一个进程都有自己独立的虚拟内存空间,而同一个进程的多个线程则共用进程的内存空间。
每创建一个新的线程,都需要占用一些内存(如每个线程都有自己的Stack空间)和消耗一定的CPU时间。
关于NSOperation:
1、NSInvocationOperation:初始化(alloc initWithTarget)
2、NSBlockOperation:初始化(blockOperationWithBlock)
3、任务之间可以添加依赖关系,即线程2依赖于线程1;(执行完)线程1-->线程2(才会执行线程2);注意不要循环依赖,否则不会工作。
4、依赖关系可以跨线程(如:异步线程(线程1)下载网络数据,主线程(线程2)更新界面UI)。
相关资料:
- 关于GCD的使用(该文章仅作为个人笔记,更多原理资料请查看文章尾部的《相关资料》)
- 关于UICollectionView的使用(仅作为个人笔记,相关原理资料请查看文章尾部的《相关链接》)
- 关于Runloop的使用(该文章仅作为个人笔记,原理文章请查看尾部《相关链接》)
- 人工智能相关文章资料
- 更多资料请查阅我的blog
- JAVA的文章及资料
- 关于EJB,查看资料,整理的笔记
- Android嵌套滑动组件相关的文章资料
- MDM相关资料文章整理
- ICP相关资料文章网址
- Framebuffer原理、使用、测试系列文章,非常好的资料,大家一起学习
- 资料——分享几个关于IntelliJ IDEA使用方面的文章
- Unity3D中关于NGUI的学习笔记(更多资讯资料群:193521697邀请码:10026)
- 学习一本书,介绍的关于程序自删除技术,查资料时找到相关的文章收藏起来!!!
- Android尾部带“查看更多”的TextView
- Android尾部带“查看更多”的TextView
- Android尾部带“查看更多”的TextView
- 关于Dump的相关资料
- 跨平台开发,如何进行版本升级?
- 平均距离
- 文章标题
- 在线笔试中遇到的简单图像内容识别问题
- 解决Android Studio无法输入中文
- 关于GCD的使用(该文章仅作为个人笔记,更多原理资料请查看文章尾部的《相关资料》)
- Android Looper详解
- unity学习笔记1
- maven 聚合
- 第三方登录原理
- rs232带地址
- AndroidStudio使用butterknife的详细介绍
- TDI简单的TCP网络通信
- 【Android】6.0 运行时权限申请