文档章节

关于多线程的一些笔记📒

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

© 著作权归作者所有

共有 人打赏支持
上一篇: GCD笔记
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
关于iOS多线程,这边勉强可以看看(OC&Swift)

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

Andy_Ron
08/26
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
数据库分库分表中间件 Sharding-JDBC 源码分析 —— SQL 执行

摘要: 原创出处 www.iocoder.cn/Sharding-JD… 「芋道源码」欢迎转载,保留摘要,谢谢! 本文主要基于 Sharding-JDBC 1.5.0 正式版 1. 概述 2. ExecutorEngine 2.1 ListeningExecutorService...

芋道源码掘金Java群217878901
2017/10/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

node安装cnpm

npm install -g cnpm --registry=https://registry.npm.taobao.org

笑丶笑
21分钟前
3
0
OSChina 周三乱弹 —— 夜半回家,推门不动

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @胖达panda :分享陶晶莹/张雨生的单曲《我期待》 《我期待》- 陶晶莹/张雨生 手机党少年们想听歌,请使劲儿戳(这里) @cc_z :熬夜一时爽,...

小小编辑
33分钟前
234
8
验证码

response生成验证码 验证码的作用:防止恶意注册、攻击等 网站上看到的验证码,实际上都是一些图片,而这些图片都是程序(Servlet)生成的! package day19.test; import java.awt.Color; i...

码农屌丝
今天
1
0
day147-2018-11-14-英语流利阅读-待学习

《毒液》刚刚上映,创造漫威宇宙的人却走了 雪梨 2018-11-14 1.今日导读 中国的金庸创造了侠义英雄和江湖传奇,而大洋彼岸的斯坦·李也同样创造了一个绚烂璀璨的漫威宇宙,他构思的每个超级英...

飞鱼说编程
今天
13
0
CentOS 安装PHP5和PHP7

安装PHP5 下载解压二进制包 [root@test-a src]# cd /usr/local/src/[root@test-a src]# wget http://cn2.php.net/distributions/php-5.6.32.tar.bz2[root@test-a src]# tar jxvf php-5.6......

野雪球
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部