![](https://img-blog.csdnimg.cn/20190918140129601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
iOS多线程
文章平均质量分 81
iOS 多线程内容
赑屃王者
一个勤勤恳恳的码农
展开
-
weak的实现原理
weak是弱引用,用weak描述修饰或者所引用对象的计数器不会加一,并且会在引用的对象被释放的时候自动被设置为nil,避免了野指针访问坏内存引起崩溃的情况,另外weak还可以用于解决循环引用。1、调用objc_release2、因为对象的引用计数为0,所以执行dealloc3、在dealloc中,调用了_objc_rootDealloc函数4、在_objc_rootDealloc中,调用了object_dispose函数5、调用objc_destructInstance。原创 2021-06-02 09:39:22 · 197 阅读 · 0 评论 -
GCD信号量 -- semaphore
信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施。原创 2023-06-21 17:27:59 · 311 阅读 · 0 评论 -
iOS多线程
多线程的原理同一时间,CPU只能处理1条线程,只有1条线程在工作(执行)多线程并发(同时)执行,其实是CPU快速地在多条线程之间调度(切换)如果CPU调度线程的时间足够快,就造成了多线程并发执行的假象如果线程非常多,CPU会在N多线程之间调度,消耗大量的CPU资源,每条线程被调度执行的频次会降低、线程的执行效率降低使用语言使用频率线程的生命周期特点pthreadC语言几乎不用有程序员管理1. 一套通用的多线程API 2. 适用于Unix/Li原创 2021-06-01 09:51:44 · 14 阅读 · 0 评论 -
iOS多线程---pthread
pthread是一套通用的多线程API,可以在Unix/Linux/Windows等系统跨平台使用,使用C语言编写,需要程序员自己管理线程的生命周期,使用难度较大,不建议使用。原创 2021-06-01 09:51:21 · 90 阅读 · 0 评论 -
iOS多线程---Thread
Thread是苹果官方提供的,使用起来比pthread更加面向对象,简单易用,可以直接操作线程对象。Thread也需要程序员自己管理线程的生命周期。:线程优先级(double)0.0~1.0,默认0.5,优先级和执行顺序成正比name:线程名字stackSize: 线程栈大小,默认主线程1m ,子线程512k,次属性可读写,但是写入大小必须为4k的倍数,最小为16k: 是否是主线程executing:是否正在执行finished:是否已经完成cancelled: 是否已经取消。原创 2021-06-01 09:50:43 · 73 阅读 · 0 评论 -
iOS多线程--- Operation
Operation是苹果提供给我们的一套多线程解决方案。实际上Operation是基于GCD更高一层的封装,完全面向对象。但是比GCD更简单、代码可读性也更高。原创 2021-06-01 09:49:13 · 75 阅读 · 0 评论 -
iOS多线程---GCD中的栅栏函数
一、什么是栅栏函数dispatch_barrier_async函数,在进程管理中起到一个栅栏的作用,它等待所有位于barrier函数之前的操作执行完毕后执行,并且在barrier函数执行之后,barrier函数之后的操作才会得到执行,该函数需要同dispatch_queue_create函数生成的DISPATCH_QUEUE_CONCURRENT队列一起使用。原创 2021-06-01 09:48:36 · 936 阅读 · 0 评论 -
iOS多线程---GCD
Grand Central Dispatch(GCD)是苹果封装的一套C的API,异步执行任务的技术之一。它可以自动管理线程的创建,调度和销毁等功能,无需开发者自己实现。苹果官方对GCD的说明:开发者只需要定义想执行的任务并追加到适当的Dispatch Queue中,GCD就能生成必要的线程并计划执行任务。用于管理追加的Block的C语言层实现的FIFO队列Atomic函数中实现的用于排他控制的轻量级信号用于管理线程的C语言层实现的一些容器。原创 2021-06-01 09:48:04 · 427 阅读 · 0 评论 -
iOS多线程---常用的几种锁
我们在使用多线程的时候多个线程可能会访问同一块资源,这样就很容易引发数据错乱和数据安全等问题,这时候就需要我们保证每次只有一个线程访问这一块资源,这就是锁。线程安全措施有:atomic、@synchronize(对象)、NSLock、NSRecursiveLock递归锁、NSCoditionLock(条件锁)、NSCondition、dispatch_semaphore、OSSpinLock(自旋锁,已弃用)、os_unfair_lock、pthread_mutex 、dispatch_once。原创 2021-06-01 09:44:52 · 407 阅读 · 0 评论