网络开始---多线程---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
时间: 2024-10-06 05:59:28

网络开始---多线程---GCD-01-基本使用(掌握)(六)的相关文章

苹果多线程网络编程之-GCD队列与任务的理解

今天就 iOS 的多线程 GCD 的使用做了一些总结和理解. GCD,Grand Central Dispatch,是Apple开发的一个多核编程的解决方法. GCD其实就是创建/获取一个队列,在 Block 块或方法(函数)里写需要执行的任务代码块,然后将任务放到合适的队列里执行.GCD队列呢,分三种:主队列(串行队列).全局队列(并行队列).自定义队列(自定义).任务执行方法呢,又分为同步执行和异步执行.至于串行队列.并行队列,同步执行.异步执行的特点,自行去学习,这里不做过多阐述.大概意思

IOS 多线程GCD的使用[转载于新浪微博, 原作者:太阳石]

原文 在红黑联盟上看到一篇关于多线程GCD的教程文章,写的深入浅出,特转载于此,以备不时之需.原文链接另:补充两个GCD代码,都是Xcode snippet里面提供的:1.Dispatch After主要用于延迟执行一些代码.例子: int64_t delayInSeconds = 1.0; dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC); dispatch_aft

iOS多线程 GCD

iOS多线程 GCD Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法. dispatch queue分成以下三种: 1)运行在主线程的Main queue,通过dispatch_get_main_queue获取. /*! * @function dispatch_get_main_queue * * @abstract * Returns the default queue that is bound to the main thread. *

多线程 GCD

n多线程 GCD n简介 n什么是GCD p全称是Grand Central Dispatch,可译为“牛逼的中枢调度器” p纯C语言,提供了非常多强大的函数 p nGCD的优势 pGCD是苹果公司为多核的并行运算提出的解决方案 pGCD会自动利用更多的CPU内核(比如双核.四核) pGCD会自动管理线程的生命周期(创建线程.调度任务.销毁线程) p程序员只需要告诉GCD想要执行什么任务,不需要编写任何线程管理代码 n任务和队列 nGCD中有2个核心概念 p任务:执行什么操作 p队列:用来存放任

iOS多线程GCD

Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法. dispatch queue分成以下三种: 1)运行在主线程的Main queue,通过dispatch_get_main_queue获取. /*! * @function dispatch_get_main_queue * * @abstract * Returns the default queue that is bound to the main thread. * * @discussi

iOS开发网络篇—多线程断点下载

iOS开发网络篇—多线程断点下载 说明:本文介绍多线程断点下载.项目中使用了苹果自带的类,实现了同时开启多条线程下载一个较大的文件.因为实现过程较为复杂,所以下面贴出完整的代码. 实现思路:下载开始,创建一个和要下载的文件大小相同的文件(如果要下载的文件为100M,那么就在沙盒中创建一个100M的文件,然后计算每一段的下载量,开启多条线程下载各段的数据,分别写入对应的文件部分). 项目中用到的主要类如下: 完成的实现代码如下: 主控制器中的代码: 1 #import "YYViewControl

boost中asio网络库多线程并发处理实现,以及asio在多线程模型中线程的调度情况和线程安全。

1.实现多线程方法: 其实就是多个线程同时调用io_service::run for (int i = 0; i != m_nThreads; ++i)        {            boost::shared_ptr<boost::thread> pTh(new boost::thread(                boost::bind(&boost::asio::io_service::run,&m_ioService)));            m_l

【iOS】多线程GCD

GCD(Grand Central Dispatch) : 牛逼的中枢调度器.苹果自带,纯C语言实现,提供了非常多且强大的函数,它可以提高代码的执行效率与多核的利用率. 一.GCD的基本使用 1.GCD中的两个核心概念: ?任务: 执行什么任务. ?队列: 用来存放任务. (用来调度任务) 2.GCD使用的2个步骤: ?1.定制任务. (确定想做的事情) ?2.将任务添加到队列中. ?GCD会自动将队列中的任务取出, 放到对应的线程中执行. ?遵循队列的FIFO原则: 先进先出. 3.同步和异步

iOS开发之多线程——GCD介绍

iOS开发之多线程——GCD的介绍 一.简单介绍 1.GCD ( Grand Central Dispatch) 可以翻译为“中枢调度器”.纯C语言,并且提供了非常强大的函数. 2.GCD 有什么优势: GCD是苹果公司为多核的并行运算提出的解决方案 GCD会自动利用更多地CPU 内核 (比如双核.四核) GCD会自动管理线程的生命周期 (创建线程.调度任务.销毁线程) 程序猿只需要告诉GCD想要执行设呢任务,不需要编写任何线程管理代码. 二.任务和队列 GCD中有两个核心概念 (1)任务: 执

深入IOS多线程 GCD(一)

一,什么是GCD GCD是异步执行任务的技术之一,一般将应用程序中记述的线程管理用的代码在系统级中实现.开发者只需要定义想执行的任务并追加到适当的dispatch queue中,GCD就能生成必要的线程并计划执行任务.由于线程管理师作为系统的一部分来实现的,因此可统一管理,也可执行任务,这样就比以前的线程更有效率. 也就是说GCD用我们难以置信的非常简单的记述方法,实现了极为复杂的多线程编程,可以说这是一项划时代的技术.下面是使用了GCD源码的例子,虽然稍微抽象,但从中也能感受到GCD的威力 d