/******************************************************/
 
 同步函数
 
 (1)并发队列:不会开线程
 
 (2)串行队列:不会开线程
 
 异步函数
 
 (1)并发队列:能开启N条线程
 
 (2)串行队列:开启1条线程

/*******************************************************/

/*****************用异步函数往并发队列中添加任务********************/
/* //可以创建多个子线程
//1.获得全局的并发队列
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
//2.添加任务到队列中,就可以执行任务
//异步函数:具备开启新线程的能力
dispatch_async(queue, ^{
NSLog(@"下载图片1----%@",[NSThread currentThread]);
});
dispatch_async(queue, ^{
NSLog(@"下载图片2----%@",[NSThread currentThread]);
});
dispatch_async(queue, ^{
NSLog(@"下载图片3----%@",[NSThread currentThread]);
});
//打印主线程
NSLog(@"主线程----%@",[NSThread mainThread]);
*/
/*****************用异步函数往串行队列中添加任务*******************/
//会开启子线程,但只会开启一个;
//打印主线程
NSLog(@"主线程----%@",[NSThread mainThread]); //创建串行队列
dispatch_queue_t queue=dispatch_queue_create("name", NULL); //第一个参数为串行队列的名称,是c语言的字符串
//第二个参数为队列的属性,一般来说串行队列不需要赋值任何属性,所以通常传空值(NULL) //2.添加任务到队列中执行
dispatch_async(queue, ^{
NSLog(@"图片1----%@",[NSThread currentThread]);
NSLog(@"图片2----%@",[NSThread currentThread]);
NSLog(@"图片3----%@",[NSThread currentThread]);
});
//NSLog(@"主线程----%@",[NSThread mainThread]);
//3.释放资源
// dispatch_release(queue); /*****************用同步函数往并发队列中添加任务*******************/
/* //不会创建子线程;
dispatch_queue_t queue=dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_sync(queue, ^{
NSLog(@"image1---%@",[NSThread currentThread]);
NSLog(@"image2---%@",[NSThread currentThread]);
NSLog(@"image3---%@",[NSThread currentThread]); });
NSLog(@"mainThread%@",[NSThread mainThread]);
*/
/*****************用同步函数往串行队列中添加任务*******************/
/* //不会创建子线程;
dispatch_queue_t queue=dispatch_queue_create("name", NULL);
dispatch_sync(queue, ^{
NSLog(@"image1%@",[NSThread currentThread]);
NSLog(@"image2%@",[NSThread currentThread]);
NSLog(@"image3%@",[NSThread currentThread]);
});
NSLog(@"mainThread%@",[NSThread mainThread]);*/
/********************************************************/

线程5--GCD简介的更多相关文章

  1. iOS多线程GCD简介(一)

    之前讲过多线程之NSOperation,今天来讲讲代码更加简洁和高效的GCD.下面说的内容都是基于iOS6以后和ARC下. Grand Central Dispatch (GCD)简介 Grand C ...

  2. iOS 多线程GCD简介

    一.简介 1.1 GCD (Grand Central Dispatch )是Apple开发的一个多核编程的解决方法. Grand 含义是“伟大的.宏大的”,Central含义“中央的”,Dispat ...

  3. iOS多线程之4.GCD简介

    GCD(Grand Central Dispatch)应该是我们开发中最常用到的多线程解决方案,是苹果公司专门为多核的并行运算提出的解决方案,是基于C语言的,提供了很多非常强大的函数. GCD的优势 ...

  4. ios线程和GCD

    1.什么是进程? 进程是指在系统中正在运行的一个应用程序.比如同时打开QQ.Xcode,系统就会分别启动2个进程.截图 2.什么是线程? 1).一个进程要想执行任务,必须得有线程(每一个进程至少要有一 ...

  5. 创建线程方式-GCD

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

  6. GCD简介

    什么是GCD 全称是Grand Central Dispatch,可译为"牛逼的中枢调度器" 纯C语言,提供了非常多强大的函数   GCD的优势 GCD是苹果公司为多核的并行运算提 ...

  7. ios线程和GCD和队列同步异步的关系

    1.什么是进程? 进程是指在系统中正在运行的一个应用程序.比如同时打开QQ.Xcode,系统就会分别启动2个进程.截图 2.什么是线程? 1).一个进程要想执行任务,必须得有线程(每一个进程至少要有一 ...

  8. iOS开发多线程篇—GCD简介

    iOS开发多线程篇—GCD介绍 一.简单介绍 1.什么是GCD? 全称是Grand Central Dispatch,可译为“牛逼的中枢调度器” 纯C语言,提供了非常多强大的函数 2.GCD的优势 G ...

  9. OC 线程操作 - GCD使用 -线程通讯, 延迟函数和一次性代码

    - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ // [self downImag ...

  10. OC 线程操作 - GCD使用 -同步函数,异步函数,串行队列,并发队列

    - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ // GCD 开几条线程并不是我们 ...

随机推荐

  1. Eclipse (JavaEE版)中修改web项目的访问路径

    访问路径,也就是指在浏览器中访问该web系统时的根路径,比如http://localhost:8080/xxxx/index.jsp  这里的xxxx. 也就是request.getContextPa ...

  2. 关于Boolean()

    Boolean(value); 如果省略 value 参数,或者设置为 0.-0.null."".false.undefined 或 NaN,则该对象设置为 false. 否则设置 ...

  3. git 常用命令(不定期更新)

    过程写写吧,总是忘记.1,在一个文件夹下 键入 git init ,使之成为Git可以管理的仓库.2,编写一个文件readme.txt.3,把文件添加到仓库 git add readme.txt4,把 ...

  4. ajax获取json数据及实现跨域请求

    最近想练习一下ajax获取json数据 , 首先上网找一些在线的可用来测试的接口. -----------------------------------------------------这里是接口 ...

  5. html基础+常用标签

    概述 HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样就可以让浏览器 ...

  6. 无头结点的单链表(C语言)

    1.单链表: 在顺序表中,用一组地址连续的存储单元来一次存放线性表的结点,因此结点的逻辑顺序与物理顺序是一致的.但链表却不同,链表是用一组任意的存储单元来存放 线性表的结点,这组存储单元可以是连续的, ...

  7. 【learning】微信跳一跳辅助c++详解 轻松上万 【上】

    写在前面 17年年底Wechat出了这个跳一跳的小游戏,今年2月份的时候简单地玩了一下,发现被游戏虐了(手太残了只能跳20多).     今天刚好有点空,于是就花了一个下午的时间写了一个跳一跳的c++ ...

  8. iOS 11 application 新特性

    1.- (void)applicationWillResignActive:(UIApplication *)application 说明:当应用程序将要入非活动状态执行,在此期间,应用程序不接收消息 ...

  9. POJ 1023

    #include <iostream> #include <string> #include <cmath> #define MAXN 65 int op[MAXN ...

  10. 8.在XamarinAndroid上进一步控制包的大小

    在Android上链接 Xamarin.Android应用程序使用链接器来减小应用程序的大小.链接器使用应用程序的静态分析来确定哪些程序集.类型.成员被实际使用.链接器的行为就像一个GC,不断寻找被引 ...