什么是RunLoop?从字面上来看是运行循环的意思.内部就是一个do{}while循环,在这个循环里内部不断的处理各种任务(比如:source/timer/Observer)RunLoop的存在其实就是为线程而存在的.线程的作用就是执行一个特定的任务,但是默认情况下线程执行完任务后就不能再次执行任务,这是因为默认情况下线程是没有开启RunLoop的.如果开启RunLoop之后,线程执行完任务之后,
iOS开发过程中,有时一些花费时间比较长的操作阻塞主线程,导致界面卡顿,那么我们就会创建一个子线程,然后把这些花费时间比较长的操作放在子线程中来处理。可是当子线程中的任务执行完毕后,子线程就会被销毁掉。如果程序中,需要经常在子线程中执行任务,频繁的创建和销毁线程,会造成资源的浪费。 这时候我们就可以使用RunLoop来让该线程长时间存活而不被销毁。来个案例,在睡眠时,通过硬件获取数据信息(比如心
转载 2023-12-27 20:34:49
163阅读
iOS底层原理 - 常驻线程在 AFN 2.0 时代,会经常看到 AFN 创建一个常驻线程的方式:0️⃣ AFN 2.0 时代的常驻线程+ (NSThread *)networkRequestThread { static NSThread *_networkRequestThread = nil; static dispatch_once_t oncePredicate;
转载 2024-01-13 23:06:50
143阅读
  单例模式的作用:可以保证在程序运行过程,一个类只有一个实例,而且该实例易于供外界访问,从而方便地控制了实例个数,并节约系统资源。  单例模式的使用场合:在这个应用程序中,共享一份资源(这份资源只需要创建初始化1次)。一、单例模式-ARC的实例(static防止其他类extern引用 修改值)static id_instance;2、重写allocWithZone:方法,在这里创建唯一的实例(注
常驻线程:1、2.0 需要常驻线程的作用?2.0常驻线程,用来并发请求,和处理数据回调;避免多个网络请求的线程开销(不用开辟一个线程,就保活一条线程);2、而3.0不需要常驻线程?因为NSURLSession可以指定回调delegateQueue,NSURLConnection而不行;NSURLConnection的一大痛点就是:发起请求后,而需要一直处于等待回调的状态。而3.0后NSURLS
转载 10月前
16阅读
什么是RunLoopRunLoop从字面上看是运行循环的意思,这一点也不错,它确实就是一个循环的概念,或者准确的说是线程中的循环。 本文一开始就提到有些程序是一个圈,这个圈本质上就是这里的所谓的RunLoop,就是一个循环,只是这个循环里加入很多特性。 RunLoop中内部结构一个 RunLoop 包含若干个 Mode,每个 Mode 又包含若干个 Source/Timer/Observer。每次
转载 2023-07-07 14:59:56
100阅读
什么是 Runloop?从字面意思看,Runloop 是一个运行循环,类似跑圈的概念。Runloop 是和线程紧密相关的一个基础组件,是多线程相关的幕后英雄。在平常开发中可能很少碰到,但作为一名力求上进的程序猿,实在有必要了解其相关概念和原理。Runloop 的基本作用保持程序的持续运行;处理 APP 中的各种事件(比如触摸事件、定时器事件、Selector 事件等等)节省 CPU 资源,提高程序
转载 2023-12-19 23:55:13
74阅读
RunLoop的基本应用1:利用RunLoop设置图片 2:利用RunLoop创建精准定时器3:利用RunLoop开启一条常驻线程 具体代码如下 // // ViewController.m // RunLoop // // Created by fe on 2016/11/2. // Copyright © 2016年 fe. All rights reserved. //
1.NSThread2.NSOperationQueue3.GCDNSThread:创建方式主要有两种: [NSThread detachNewThreadSelector:@selector(myThreadMainMethod:) toTarget:self withObject:nil]; 和 NSThread *myThread = [[NSThread alloc] initWith
转载 2023-09-05 15:35:40
72阅读
一、常驻线程001 常驻线程指的是那些一直存在于内存的线程。002 通过NSRunloop添加runloop的方法有:run方法。通过run方法添加runloop,会不断重复调用runModel:beforeDate:方法来确保自己不会停止runUntilDate和runModel:beforeDate:可以通过指定时间来停止runloop003 如果每个库都通过一个常驻线程这样做不但不能提高CP
转载 2024-05-14 21:37:27
102阅读
Runloop线程的关系?一个线程对应一个 Runloop。主线程的默认就有了 Runloop。子线程Runloop 以懒加载的形式创建。Runloop 存储在一个全局的可变字典里,线程是 key ,Runloop 是 value。RunLoop的运行模式RunLoop的运行模式共有5种,RunLoop只会运行在一个模式下,要切换模式,就要暂停当前模式,重写启动一个运行模式- kCFRun
转载 2023-12-13 09:20:14
37阅读
# iOS常驻线程autoreleasepool实现指南 作为一名iOS开发者,你可能会在开发过程中遇到需要在后台线程执行长时间运行的任务,比如网络请求、数据处理等。在这种情况下,合理管理内存变得尤为重要。本文将指导你如何实现iOS常驻线程autoreleasepool,以确保线程安全和内存管理。 ## 流程图 首先,我们通过流程图来概览整个实现过程: ```mermaid flowcha
原创 2024-07-21 06:34:28
67阅读
什么是RunLoop 从字面意思看运行循环跑圈基本作用保持程序的持续运行处理App中的各种事件(比如触摸事件、定时器事件、Selector事件)节省CPU资源,提高程序性能:该做事时做事,该休息时休息......如果没有RunLoop没有RunLoop的情况下第3行后程序就结束了如果有了RunLoopRunLoop的情况下由于main函数里面启动了个RunLoop,所以程序并不会马上退
这里只是分享一下,我在写一个处理线程时遇到的问题以及处理方法。由于各种原因,处理线程需要在主线程启动后,就启动。而这个线程需要在当前类被释放后,而在外部要停止一个线程也不是那么容易,最好让其自动停止,所以当这个线程启动后,就直接一个while循环中,通过一个条件变量来控制这个这个线程的正常寿终与否。当主线程要这个线程停止时, 就更改这个while中的变量即可。如果主线程只是想要这个子线程暂时停止处
转载 2024-09-23 10:46:57
66阅读
可以代替自己创建线程的有多种方法,可以管理thread或者通知或者另开进程。TechnologyDescriptionOperation objectsIntroduced in OS X v10.5, an operation object is a wrapper for a task that would normally be executed on a secondary thread.
转载 5月前
3阅读
1、简介:1.1 iOS有三种多线程编程的技术,分别是:1.、NSThread 2、Cocoa NSOperation (iOS线程编程之NSOperation和NSOperationQueue的使用)3、GCD  全称:Grand Central Dispatch( iOS线程编程之Grand Central Dispatch(GCD)介绍和
在实际项目开发中为了能够给用户更好的体验,有些延时操作我们都会放在子线程中进行。今天我们就来聊聊多线程在实际项目中的运用。我们先来看看多线程的基础知识:1.多线程的原理:        同一时间,CPU只能处理一条线程,也就是只有一条线程在工作。所谓多线程并发(同时)执行,其实是CPU快速的在多线程之间调度(切换)。如果CPU调度线程的时间足够快,就造成了多
RunLoop 即运行循环,也叫事件循环,本质为一个死循环。iOS一个程序运行起来之后,默认会开启一个运行循环,有需要处理的操作时,比如用户的输入事件时,RunLoop会自己跑起来运行,没有需要处理的事件时进入休息休眠的状态,充分节省CPU资源,提高程序的性能。一、RunLoop的作用:1.保证程序运行不退出,准确的说是保证线程的不退出,一般一个线程对应一个RunLoop。一个线程的任务执行完毕之
一、线程的概要绍 从员工搬货看多线程 现在有一大推货物堆着,如果我有5个员工搬,肯定会比一个员工搬要快速。但是若是有15个员工搬同一堆货物,中间肯定会因为空间以及货物争抢而产生摩擦,甚至会互相掐架。所以,这就不意味着线程越多越好,合理的使用多线程,可以充分提升处理器的利用率,提高工作效率线程与进程 进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1
转载 2023-12-26 10:07:28
140阅读
我们知道ios 的应用,大部分都是进入后台,就不会执行任何操作,但是 ,很多时候我们希望程序进入后台,也能执行一些检测操作,比如说,应用进入后台,我们仍然可以实时去获取当前的位置信息。下面我们来了解下,ios 获取后台时间的几种方式 根据苹果文档中关于后台执行的描述,任何app都有3分钟左右的后台任务执行时间。 3分钟后,app会被iOS强行挂起。 但是,有几类app允许有“无限的”后台运行
  • 1
  • 2
  • 3
  • 4
  • 5