IOS之GCD詳細步驟
#pragma mark 序列同步
/*
//1.建立一個序列佇列
dispatch_queue_t queueSerialSync = dispatch_queue_create("queueSerialSync", DISPATCH_QUEUE_SERIAL);
//2. 在佇列中同步執行 不具有開啟新執行緒的能力
dispatch_sync(queueSerialSync, ^{
NSLog(@"%@",[NSThread currentThread]);
});
dispatch_sync(queueSerialSync, ^{
NSLog(@"%@",[NSThread currentThread]);
});
dispatch_sync(queueSerialSync, ^{
NSLog(@"%@",[NSThread currentThread]);
});
*/
#pragma mark 序列非同步
/*
//1.建立一個序列佇列
dispatch_queue_t queueSerialAsync =dispatch_queue_create("queueSerialAsync", DISPATCH_QUEUE_SERIAL);
//2. 在佇列中同步執行 不具有開啟新執行緒的能力
dispatch_async(queueSerialAsync, ^{
NSLog(@"%@",[NSThread currentThread]);
});
dispatch_async(queueSerialAsync, ^{
NSLog(@"%@",[NSThread currentThread]);
});
dispatch_async(queueSerialAsync, ^{
NSLog(@"%@",[NSThread currentThread]);
});
*/
#pragma mark 並行同步
/*
//1.建立一個並行佇列 可有多個執行緒
dispatch_queue_t queueConcurrentSync = dispatch_queue_create("queueConcurrentSync", DISPATCH_QUEUE_CONCURRENT);
//2. 在佇列中同步執行 不具有開啟新執行緒的能力
dispatch_sync(queueConcurrentSync, ^{
NSLog(@"%@",[NSThread currentThread]);
});
dispatch_sync(queueConcurrentSync, ^{
NSLog(@"%@",[NSThread currentThread]);
});
dispatch_sync(queueConcurrentSync, ^{
NSLog(@"%@",[NSThread currentThread]);
});
*/
#pragma mark 並行非同步
//1.建立一個並行佇列 可有多個執行緒 (這是系統裡面封裝的一個並行佇列)
dispatch_queue_t queueConcurrentAsync = dispatch_get_global_queue(0, 0);
/*
四種優先順序 從上到下降低
* - DISPATCH_QUEUE_PRIORITY_HIGH: QOS_CLASS_USER_INITIATED
* - DISPATCH_QUEUE_PRIORITY_DEFAULT: QOS_CLASS_DEFAULT
* - DISPATCH_QUEUE_PRIORITY_LOW: QOS_CLASS_UTILITY
* - DISPATCH_QUEUE_PRIORITY_BACKGROUND: QOS_CLASS_BACKGROUND
*/
/*
//2. 非同步方式執行
dispatch_async(queueConcurrentAsync, ^{
NSLog(@"%@",[NSThread currentThread]);
});
dispatch_async(queueConcurrentAsync, ^{
NSLog(@"%@",[NSThread currentThread]);
});
dispatch_async(queueConcurrentAsync, ^{
NSLog(@"%@",[NSThread currentThread]);
});
*/
#pragma 獲取到主佇列
//dispatch_queue_t mainQueue = dispatch_get_main_queue();
#pragma GCD 應用
//找到全域性的並行佇列
dispatch_queue_t content = dispatch_get_global_queue(0, 0);
//找到組
dispatch_group_t group = dispatch_group_create();
//新增任務
dispatch_group_async(group, content, ^{
NSLog(@"%@",[NSThread currentThread]);
});
dispatch_group_async(group, content, ^{
NSLog(@"%@",[NSThread currentThread]);
});
dispatch_group_async(group, content, ^{
NSLog(@"%@",[NSThread currentThread]);
});
//監聽完成 上面任務全部完成後觸發
dispatch_group_notify(group, content, ^{
NSLog(@"任務完成");
});
相關文章
- 最新最詳細步驟介紹iOS APP上架iOSAPP
- 配置PLSQL Developer詳細步驟SQLDeveloper
- Oracle Stream配置詳細步驟Oracle
- ios開發者賬號到期瞭如何續費(詳細步驟)iOS
- iOS超級超級詳細介紹GCDiOSGC
- LVM建立的詳細步驟LVM
- docker安裝portainer詳細步驟DockerAI
- MySQL的安裝步驟(詳細)MySql
- mysql建立master/slave詳細步驟MySqlAST
- Github配置ssh key詳細步驟Github
- iOS GCD詳解iOSGC
- ios GCD 死鎖幾個案例 詳細講解iOSGC
- iOS多執行緒之GCD詳解iOS執行緒GC
- CentOS 7 安裝MongoDB詳細步驟CentOSMongoDB
- 安裝fbprophet模組詳細步驟
- 曲折的gcc升級詳細步驟GC
- Linux安裝JDK詳細步驟LinuxJDK
- NFS伺服器搭建詳細步驟NFS伺服器
- MyBatis的逆向工程詳細步驟操作MyBatis
- iOS IAP應用內購詳細步驟和問題總結指南iOS
- CentOS 7上安裝WordPress詳細步驟CentOS
- Linux安裝jdk的詳細步驟。LinuxJDK
- CentOS 7.4安裝redis 4.0詳細步驟CentOSRedis
- CentOS 6.5下Redis安裝詳細步驟CentOSRedis
- mysql 主從複製搭建詳細步驟MySql
- MySQL 升級詳細步驟 (包括 Percona)MySql
- ORACLE資料庫升級詳細步驟Oracle資料庫
- .Net Core Web Api 框架搭建詳細步驟WebAPI框架
- Linux安裝jdk的詳細步驟LinuxJDK
- iOS開發之GCDiOSGC
- 特別詳細的react專案搭建步驟React
- UBUNTU手動安裝JDK的詳細步驟UbuntuJDK
- Git學習2 --- Git安裝詳細步驟Git
- 免費伺服器領取步驟(詳細)伺服器
- ubuntu 18.04安裝kalibr(詳細步驟)Ubuntu
- 使用.NET Core建立Windows服務詳細步驟Windows
- doris編譯和安裝部署詳細步驟編譯
- 如何配置web伺服器的詳細步驟Web伺服器