zoukankan      html  css  js  c++  java
  • 网络开始---多线程---GCD-01-基本使用(掌握)(六)

     1 /**
     2  GCD两个核心概念:任何和队列
     3  
     4  任务:执行什么操作
     5  队列:用来存放任务
     6  
     7  使用就2个步骤
     8  1.定制任务
     9  2.将任务添加到队列中 
    10  
    11  任务的取出队列原则:FIFO原则: 先进先出,后进后出
    12  
    13  */
    14 
    15 #import "HMViewController.h"
    16 
    17 @interface HMViewController ()
    18 
    19 @end
    20 
    21 @implementation HMViewController
    22 
    23 - (void)viewDidLoad
    24 {
    25     [super viewDidLoad];
    26     // Do any additional setup after loading the view, typically from a nib.
    27 }
    28 
    29 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
    30 {
    31     //能不能开启新的进程 有两个用来执行任务的函数
    32     // dispatch_sync : 同步的方式,就是在当前线程执行,不具备开启线程的能力
    33     // dispatch_async : 异步的方式,走一条跟当前线程不一样的线程,具备开启线程的能力
    34     
    35     
    36     //任务的执行方式
    37     // 并发队列 :多个任务可以同时执行
    38     // 串行队列 :一个任务执行完后,再执行下一个任务
    39     
    40     // 获得全局的并发队列
    41     dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    42     
    43    // DISPATCH_QUEUE_PRIORITY_DEFAULT 队列被调度的优先级,这里是默认,一般都这样写
    44     
    45     //5条并发执行的队列
    46     
    47     // 将 任务 添加 全局队列 中去 异步 执行
    48     //有两个参数:queue-队列   block:任务
    49     dispatch_async(queue, ^{//开启异步线程,只要将要执行的代码放到block中就行了
    50         //这里是下载图片,只要将下载图片的代码放里面就行了
    51         NSLog(@"-----下载图片1---%@", [NSThread currentThread]);
    52         //它是在子线程中执行的 自动在子线程中执行
    53     });
    54     dispatch_async(queue, ^{
    55         NSLog(@"-----下载图片2---%@", [NSThread currentThread]);
    56     });
    57     dispatch_async(queue, ^{
    58         NSLog(@"-----下载图片3---%@", [NSThread currentThread]);
    59     });
    60     dispatch_async(queue, ^{
    61         NSLog(@"-----下载图片4---%@", [NSThread currentThread]);
    62     });
    63     dispatch_async(queue, ^{
    64         NSLog(@"-----下载图片5---%@", [NSThread currentThread]);
    65     });
    66 }
    67 
    68 @end
  • 相关阅读:
    从一个故障说说Java的三个BlockingQueue
    kafka producer源码
    Mock方法介绍
    async4j 普通用法、整合spring用法
    Spring中属性文件properties的读取与使用
    异步框架asyn4j的原理
    如何从线程返回信息——轮询、回调、Callable
    jdk 1.8 Executors
    java Iterator Fail-fast机制
    java的几种对象(PO,VO,DAO,BO,POJO)解释
  • 原文地址:https://www.cnblogs.com/ithongjie/p/4818098.html
Copyright © 2011-2022 走看看