文档章节

关于多线程的一些笔记📒

KevinEmily
 KevinEmily
发布于 2016/01/27 18:50
字数 728
阅读 82
收藏 6

1.创建定时源:

      /*1.间隔时间;2.对象;3.方法;4.自定义参数;5.是否重复*/

2.把定时源加入到当前线程的消息循环中

/*1.定时源;2.模式(1)NSDefaultRunLoopMode:拖动界面timer不运行(2)NSRunLoopCommonModes:拖动界面 TImer不受影响 */

[NSRunLoop currentRunLoop]addTimer

3.消息循环

(1)创建消息

(2)把消息放入循环,并指定消息的运行模式

(3)

4.子线程的消息循环

(1)创建子线程(2)往子线程的消息循环添加输入源(3)开启子线程的消息循环 <1> run开启之后关不了

<2>runUntilDate 指定时间间隔<3>apple推荐:通过全局布尔变量控制

特点:子线程默认不开启消息循环,主线程默认开启循环

5.GCD:Grand Central Dispatch  纯C语言 使用简单不管生命周期

定制任务:确定想做的事情

将任务添加到队列中:指定运行方式

GCD会自动将队列中的任务取出

任务的取出遵循队列的FIFO原则:先进先出,后进后出

6. (1)指定要干什么  block任务  dispatch_block_t   没有返回值  没有参数

  (2)队列 dispatch_queue_t

    (3)把任务加入到队列中dispatch_async(队列,任务)

简化写法:合起来

7.GCD线程通信:

(1)//闭包:能够调用其他方法内部的变量

(2)任务的执行方式:

//并发队列:可以让多个任务并发(同时)执行(自动开启多个线程同时执行任务)

//串行队列:让任务一个接着一个的执行(一个任务执行完毕后再执行下一个任务)

//主队列:特殊的串行队列,代表主线程  永远在主线程执行  等主线程不忙时  才调度任务去主线程运行

(3)要不要开启新的线程

//同步执行(synchroniz):在当前线程中执行,不具备开启新线程的能力

// 异步执行(Asynchronize):在新的线程中执行任务

8.串行队列同步:在当前线程有序运行

   串行队列异步:开启一个新的线程  有序执行

   并发队列异步:开启多个新线程  任务无序执行(效率最大)

   并发队列同步:没有开启新的线程  有序执行

   主队列异步:永远在主线程  不开新的线程  有序执行

   主队列同步:运行不了--死锁:主线程任务执行完,主队列才会调度主线程去执行block任务

9.延迟执行:dispatch_after  精度高  纳秒

10.队列组: 等待组里面的异步任务全部执行完成再去执行其他任务

11.一次性执行:dispatch_once  用在单例模式

12.单例模式:整个app中只有一个类的实例化对象





Emily.Wang

© 著作权归作者所有

共有 人打赏支持
KevinEmily
粉丝 18
博文 40
码字总数 23590
作品 0
东城
加载中

评论(2)

KevinEmily
KevinEmily

引用来自“开源中国osc”的评论

标题最后一个乱码是啥
是一个图 笔记的图
开源中国段子手
开源中国段子手
标题最后一个乱码是啥
iOS多线程全面解读(一):概述、NSThread

前言 本系列文章列表 概述、NSThread GCD NSOperation 锁 为什么会写这系列文章? 现在网络上有着大量的关于多线程的文章,“深入剖析”、“底层原理”这些看似高大上的字眼很多,然而大部分...

indulge_in
2017/11/30
0
0
学习笔记DL001 : 数学符号、深度学习的概念

数学符号。 数和数组。𝑎,标量(整数或实数)。𝒂,向量。𝑨,矩阵。𝗔,张量。𝑰𝑛,𝑛行𝑛列单位矩阵。𝑰,维度蕴含上下文单位矩阵。𝑒⁽ⁿ⁾,标准基向量[0,…,0,10,…...

利炳根
2017/11/17
0
0
IDA Pro 逆向速参(链接)

IDA Pro 逆向速参(链接) 整理:PeterDocter 【 IDA】使用IDA load file功能,导入JNI.h解析【JNI 函数】 - CSDN博客 IDA Pro 导入jni.h头文件定义 - CSDN博客 [讨论]IDA中F5功能反编译安卓...

01/14
0
0
关于iOS多线程,这边勉强可以看看(OC&Swift)

iOS开发多线程总是绕不过的坎,看了很多前辈们优秀的文章,如:关于iOS多线程,我说,你听,没准你就懂了!、谈iOS多线程(NSThread、NSOperation、GCD)编程、iOS多线程:『GCD』详尽总结、i...

Andy_Ron
08/26
0
0
UICollectionView自定义布局(一)

前言 最近看了www.raywenderlich.com的关于UICollectionView自定义布局的的教程,作一下笔记,方便以后查阅。UICollectionView自定义布局的基本概念可以查看喵神的WWDC 2012 Session笔记——...

_誌念
2017/11/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

day96-20180923-英语流利阅读-待学习

英国王子也不看好人工智能,理由却和霍金不同 Daniel 2018-09-23 1.今日导读 2016 年 3 月 9 日至 15 日,世界围棋冠军李世石与谷歌研发的计算机围棋程序 AlphaGo 进行人机大战并以 1 比 4 ...

飞鱼说编程
26分钟前
1
0
今天在码云遇到一个很有意思的人 for Per.js

今天在码云遇到一个很有意思的人,他在我的Per.js项目下面评论了一句,大意为“你试试这句代码,看看速度到底是你快还是Vue快”【当然,这个评论被我手残不小心删掉了...】。 然后我就试了,...

Skyogo
31分钟前
23
0
Java -------- 首字母相关排序总结

Java 字符串数组首字母排序 字符串数组按首字母排序:(区分大小写) String[] strings = new String[]{"ba","aa","CC","Ba","DD","ee","dd"}; Arrays.sort(strings); for (int i ...

切切歆语
33分钟前
1
0
还在用 Git 的 -f 参数强推仓库,你这是在作死!

最近,美国一个程序员因为同事不写注释,代码不规范,最严重的是天天使用 git push -f 参数强行覆盖仓库,该程序员忍无可忍向四名同事开抢,其中一人情况危急!!! 不写注释、代码不规范是一...

红薯
46分钟前
373
0
NPM报错终极大法

所有的错误基本上都跟node的版本相关 直接删除系统中的node 重新安装 sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*} 重新安装 $ n lts$ npm...

lilugirl
50分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部