多线程
文章平均质量分 96
介绍多线程:线程,GCD,NSOperation。线程安全:锁,NSLOCK,synchronized,信号量,NSConditionLock和NSCondition,自旋锁和递归锁
Z苗
这个作者很懒,什么都没留下…
展开
-
多线程(GCD,NSOperation)
多线程是软件开发中,不可避免的问题,是指从软件和硬件实现多个线程并发执行的技术。硬件主要体现在多核CPU,从而使CPU在同一时间处理多个线程,有效利用CPU资源,提高程序性能。原创 2021-07-16 12:24:58 · 696 阅读 · 0 评论 -
iOS多线程——GCD底层探索下(栅栏与dispatch_once与dispatch_group与dispatch_semaphore_t)
栅栏函数的拓展和底层源码分析栅栏函数基础栅栏函数栏队列- (void)demo2 { dispatch_queue_t queue2 = dispatch_queue_create("queue2", DISPATCH_QUEUE_CONCURRENT); dispatch_async(queue2, ^{ sleep(2); NSLog(@"异步任务"); }); dispatch_barrier_asyn原创 2021-08-04 20:15:59 · 587 阅读 · 0 评论 -
iOS多线程——GCD底层探索中(dispatch_async与dispatch_sync源码)
准备工作以及源码的下载在上一篇文章中并发函数 dispatch_async查看源码 dispatch_async(dispatch_queue_t// dq为队列,work为任务voiddispatch_async(dispatch_queue_t dq, dispatch_block_t work){ // 临时变量,参数 dispatch_continuation_t dc = _dispatch_continuation_alloc(); uintptr_t dc_flags =原创 2021-08-04 17:16:01 · 1168 阅读 · 0 评论 -
iOS多线程——GCD底层探索上
准备开源的libdispatch下载地址查找 GCD 源码来到工程,我们跳转查看dispatch_async如下:只是提供了一个对外的接口。#ifdef __BLOCKS__API_AVAILABLE(macos(10.6), ios(4.0))DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROWvoiddispatch_async(dispatch_queue_t queue, dispatch_block_t block);#end原创 2021-08-03 18:01:54 · 594 阅读 · 0 评论 -
iOS多线程——GCD概念篇
iOS开发多线程篇—GCD介绍一、简单介绍1.什么是GCD?全称是Grand Central Dispatch,可译为“牛逼的中枢调度器”纯C语言,提供了非常多强大的函数2.GCD的优势GCD是苹果公司为多核的并行运算提出的解决方案GCD会自动利用更多的CPU内核(比如双核、四核)GCD会自动管理线程的生命周期(创建线程、调度任务、销毁线程)程序员只需要告诉GCD想要执行什么任务...原创 2019-04-09 19:52:13 · 1432 阅读 · 0 评论 -
线程安全——锁
前言多线程利用CPU多核的性质。能并行执行任务,提高效率。但随着多线程的使用,对于资源的静态以及数据的操作都可能存在风险,所以有必要在操作时保证线程安全。而线程的安全主要是依靠各种锁,锁的种类有很多,有各自的优缺点,需要开发者自己权衡利弊,选择合适的锁,来搭配多线程的使用。NSLock...原创 2021-07-19 09:34:43 · 2020 阅读 · 1 评论