GCD之同步函数、异步函数和串行队列、并发队列
来源:互联网 发布:安全炒股软件 编辑:程序博客网 时间:2024/06/06 12:45
//
// ViewController.m
// 1124GCD多线程同步异步函数和并发串行队列
//
// Created by weibiao on 15/11/24.
// Copyright © 2015年 weibiao. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[superviewDidLoad];
[selfsyncGlobalQueue];
// [self asyncGlobalQueue];
// [self asyncSerialQueue];
// [self syncSerialQueue];
}
// 异步函数,执行串行队列,只会创建一条线程
/**
* 会创建1条线程
*/
- (void)asyncSerialQueue {
dispatch_queue_t queue =dispatch_queue_create("WBO",NULL);
dispatch_async(queue, ^{
NSLog(@"下载图片A----%@",[NSThreadcurrentThread]);
});
dispatch_async(queue, ^{
NSLog(@"下载图片B----%@",[NSThreadcurrentThread]);
});
dispatch_async(queue, ^{
NSLog(@"下载图片C----%@",[NSThreadcurrentThread]);
});
}
// 异步函数,执行并发队列,会创建多条队列
/**
* 会创建3条线程
*/
- (void)asyncGlobalQueue {
dispatch_queue_t queue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);
dispatch_async(queue, ^{
NSLog(@"下载图片A----%@",[NSThreadcurrentThread]);
});
dispatch_async(queue, ^{
NSLog(@"下载图片B----%@",[NSThreadcurrentThread]);
});
dispatch_async(queue, ^{
NSLog(@"下载图片C----%@",[NSThreadcurrentThread]);
});
}
// 同步函数,执行串行队列,不会创建线程,在主线程中执行操作
/**
* 不会创建新的线程
*/
- (void)syncSerialQueue {
dispatch_queue_t queue =dispatch_queue_create("WB",NULL);
dispatch_sync(queue, ^{
NSLog(@"下载图片A----%@",[NSThreadcurrentThread]);
});
dispatch_sync(queue, ^{
NSLog(@"下载图片B----%@",[NSThreadcurrentThread]);
});
dispatch_sync(queue, ^{
NSLog(@"下载图片C----%@",[NSThreadcurrentThread]);
});
}
// 同步函数,执行并发队列,不会创建队列
/**
* 不会创建新的线程
*/
- (void)syncGlobalQueue {
dispatch_queue_t queue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);
dispatch_sync(queue, ^{
NSLog(@"下载图片A----%@",[NSThreadcurrentThread]);
});
dispatch_sync(queue, ^{
NSLog(@"下载图片B----%@",[NSThreadcurrentThread]);
});
dispatch_sync(queue, ^{
NSLog(@"下载图片C----%@",[NSThreadcurrentThread]);
});
}
/**
* 同步函数没有开线程的能力
*/
@end
- GCD之同步函数、异步函数和串行队列、并发队列
- iOS 【Multithreading-GCD 同步/异步函数 和 串行/并发队列 的6种搭配使用及介绍】
- 关于GCD中串行队列、并发队列和同步执行、异步执行的探讨
- GCD之串行队列与并发队列
- GCD-同步,异步分别在串行队列,并发队列,主队列下的执行方式
- 多线程中同步异步函数与串行并发队列的组合情况
- iOS 之GCD串行和并发队列的理解
- iOS 之GCD串行和并发队列的理解
- 异步函数,并发队列
- 串行队列/并发队列&异步任务/同步任务代码演练
- GCD 串行队列,并发队列和主队列的整理
- GCD 串行队列,并发队列和主队列的整理
- GCD串行并发队列扫盲
- GCD串行并发队列扫盲
- GCD串行并发队列扫盲
- GCD串行并发队列扫盲
- GCD串行并发队列扫盲
- GCD 队列串行 并行 同步 异步 小例
- 第十四章 断言和单元测试
- 初识Flutter
- 聊聊arm下的函数栈
- STL--set注意事项
- wget 下载 保存文件名
- GCD之同步函数、异步函数和串行队列、并发队列
- zoj3160 DP
- Scalaz(14)- Monad:函数组合-Kleisli to Reader
- Vector与ArrayList区别
- 设计模式 - 行为型模式 - 观察者模式
- php 不能通过表单获取所有select的值,用js赋值一个隐藏域
- 《剑指offer》——扑克牌顺子
- Winform 子线程更新 控件
- 有关fastjson输出的时候double不输出后面.0的问题