/******************************************************/
 
 同步函数
 
 (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. application/force-download 不生效

    不管用什么方式都无法下载txt 设置application/force-download也不生效 很无奈 胡搞瞎搞 最终解决方案:但是没搞明白什么原理 问题解决 @RequestMapping(val ...

  2. event 自定义事件

    自定义事件 1 public class Program 2 { 3 public event EventHandler ehdl=null; 4 public Program() 5 { 6 ehd ...

  3. win10 下Oracle安装

    在win10 64bit下安装oracle 11的时候,有些问题不注意,安装的时候才遇到就gg了.下面将介绍win10下安装oracle 11的步骤以及安装过程中遇到的一些问题及解决方案. 安装过程中 ...

  4. [ActionScript 3.0] UDP通信

    package com.controls.socket { import flash.events.DatagramSocketDataEvent; import flash.events.Event ...

  5. [WiX]Component Rules 101

    原文:http://robmensching.com/blog/posts/2003/10/18/component-rules-101 I've been debating with myself ...

  6. windows 安装openssl

    参考文章:http://www.cnblogs.com/tangxin-blog/p/5724071.html 准备条件: 1.VS2012 (携带c++) 2.下载openssl 源码 3.安装Pe ...

  7. Explorer内存占用偶尔变高导致卡顿

    症状: 打开 "这台电脑",加载缓慢.此时查看任务管理器,explorer内存可能飙升到几G.cpu也很高 创建和删除文件缓慢,删除单个文件也会出现进度条.此时查看任务管理器,会出 ...

  8. Vue路由router-link的使用

    Vue路由router-link的使用 相关Html: <!DOCTYPE html> <html lang="en"> <head> < ...

  9. 【数组】Maximum Subarray

    题目: Find the contiguous subarray within an array (containing at least one number) which has the larg ...

  10. Java_反射机制详解

    本篇文章依旧采用小例子来说明,因为我始终觉的,案例驱动是最好的,要不然只看理论的话,看了也不懂,不过建议大家在看完文章之后,在回过头去看看理论,会有更好的理解. 下面开始正文. [案例1]通过一个对象 ...