最近太忙没太多的时间,忙碌的码农生活空下来一点时间,都会挤出来看一些技术或者咨询的文章,废话不多说,直奔主题。
接着上一次的继续说。
定时器在多线程的使用
NSRunLoop 是线程相关的基础框架的一部分。一个run loop 就是一个事件处理的循环,用来不停的调度工作以及处理输入事件。
线程的生命周期存在五个状态:新建、就绪、运行、阻塞、死亡。
NSRunLoop 可以保持一个线程一直为活动状态,不会马上销毁掉。
一般在(延时调用一个方法、定时器)
run loop 属于一个调度 例如延时5s run loop ji'lu记录这个时间去延时调用这个方法
定时器 例如每隔1s来执行一个事件
那么今天我们主要说一下定时器在多线程的使用
在多线程里边如果要使用定时器必须开启RunLoop,因为只有开启RunLoop保持线程为活动状态,才能保持定时器能不断执行。
有些面试题上边可能会问,一个定时器1s精不精确,是不是真的一秒钟调用一次,有没有延迟?那么为什么会有延时呢?一个定时器在主线程上边,每隔一秒调用一次,因为是主线程,他做的事情特别多,难免会有阻塞的情况,加入主线程阻塞了0.1秒那么你这个定时器就不准确了。开一个多线程去运行定时器,那么肯定是精确地。
献给一段示例代码
-(void)runThread{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timeAction) userInfo:nill repeats:YES];
[[NSRunLoop currentRunLoop] run];//这里一定要RunLoop一下要不然程序走到这里一直走下去程序就结束掉了、所以说必须RunLoop一下、来保持这个线程的活跃
}
创建新项目
项目的创建,我在这里就不再说了上一篇文章中说的很详细,大家应该能看得明白,没看过的可以看一下
移动开发在路上-- IOS移动开发系列 多线程一
代码如下

线程直接就结束掉了
把代码打开
在运行

是不是达到了我们的效果
期待大家的继续支持,只有大家的鼓励才是我最大的动力!
分享快乐!支持我吧!觉得有用的话记得点推荐一下哦!
相关推荐
在iOS开发中,多线程多任务下载是提高应用程序性能和用户体验的重要技术。尤其是在处理大文件下载时,传统的单线程下载方式可能会导致用户界面阻塞,无法进行其他操作,而多线程多任务下载则可以很好地解决这个问题...
3. **多线程**:在iOS开发中,我们使用GCD(Grand Central Dispatch)来管理多线程。通过创建并行队列,可以同时处理多个下载任务,提高效率。 4. **NSOperationQueue**:另一种管理并发任务的方法,它可以控制队列...
在iOS开发中,多线程技术是至关重要的,它能够帮助我们提高应用程序的性能和用户体验。本教程将深入探讨Swift中的三种主要多线程技术:NSThread、GCD(Grand Central Dispatch)以及NSOperation。这三者都有其独特的...
iOS多线程是移动应用开发中不可或缺的技术,它允许程序在后台执行耗时任务,同时保持主线程的流畅,从而提供良好的用户体验。本文将深入探讨iOS的三种主要多线程编程方式:NSThread、NSOperation和NSOperationQueue...
在iOS应用开发中,多线程技术是必不可少的,尤其在网络请求和图片下载场景中,它能提升用户体验,避免UI阻塞。本文将深入探讨如何在iPhone开发中利用多线程进行网络请求和图片下载。 首先,我们来看一下标题中的...
在iOS应用开发中,了解iOS的生命周期管理、内存管理、多线程、网络通信、数据库存储以及Apple的App Store审核政策等内容是至关重要的。DelphiXE4为这些关键领域提供了全面的支持,比如,它内置的iOS模拟器可以帮助...
第二篇为进阶篇,主要介绍了Alamofire网络服务、数据的持久化、多线程、CoreText、CoreImage、Storyboard、自动化测试、性能分析、本地化、加密与安全等实用技术。第三篇为实例篇,通过对实体层、表现层和逻辑层三层...
7. **多线程编程**:并发处理,异步任务执行,线程安全问题。 8. **版本控制**:Git的使用,代码协同和版本管理。 9. **测试和调试**:单元测试,集成测试,调试技巧,性能测试。 10. **跨平台开发**:如React ...
- 多线程处理技巧 - 图片与动画处理技术 - **高级实战:** - 3D图形渲染 - 数据持久化策略 - 服务器交互技术 #### 三、知名iOS培训课程 - **教程名称:** JF23-知名iOS培训开发视频教程 - **容量大小:** ...
在跨平台移动应用开发中,Kotlin 多平台(KMM)允许开发者编写一次代码,然后在 iOS 和 Android 上共享。Kotlin 是一种静态类型的 JVM 和 JavaScript 编译器支持的语言,由 JetBrains 开发,因其简洁、安全和高性能...
开发者需要关注CPU和GPU的使用情况,调整编码参数以适应不同设备的能力,并可能需要实施多线程处理,以提高编码效率。 7. **错误处理和调试**: 集成FFmpeg到iOS项目中可能会遇到各种问题,如内存管理、编译错误、...
开发者可能使用Qt Creator作为集成开发环境,使用QNetworkAccessManager处理网络通信,使用QThread管理多线程,确保UI的流畅性。同时,为了兼容Android和iOS,项目可能使用了Qt的平台适配器和特定平台的API。 总的...
7. **性能优化**:理解内存管理,避免内存泄漏,以及利用多线程和异步编程提升应用性能。 8. **单元测试与持续集成**:学习如何编写单元测试来验证代码功能,以及如何设置持续集成(CI)和持续部署(CD)流程,如使用...
移动应用开发是现代信息技术领域中的一个重要分支,尤其在高职教育中占据着显著的地位。"GZ-2022039 移动应用开发赛项赛题" 提供了一个全面的学习和竞技平台,旨在提升学生的实践能力和创新能力,特别是在云计算环境...
实验案例往往涵盖了从基础到高级的各种技术点,例如在Android开发中可能包括UI布局、数据存储、网络通信、多线程处理、传感器应用、图形图像处理等内容。 实验库中的源码是学习移动应用开发的重要资源。通过阅读和...
- **iOS系统简介**:iOS是由苹果公司开发的移动操作系统,主要用于iPhone、iPad等设备。它以直观的操作界面、优秀的用户体验著称。 - **Swift语言入门**:Swift是苹果推出的一种编程语言,用于iOS、iPadOS、macOS等...
Swift 语言以其强大的功能和易读性在 iOS 开发领域占据了一席之地。"swift-用于并行处理的iOSSwift框架"这个主题,着重于如何利用 Swift 进行并行处理,以提高应用的性能和响应速度。并行处理是现代计算中的关键概念...
9. **多线程**:讨论GCD(Grand Central Dispatch)和Operation Queues,理解多线程在iOS开发中的应用。 10. **App Store发布**:介绍iOS应用的测试、签名、版本控制和App Store审核流程,以及App Store Connect的...
本资源摘要信息是关于一名 iOS 开发工程师的个人信息,包括个人简历、教育背景、专业技能、工作经验和项目经验等方面的信息。 教育背景: * 本科(CET-4),电子信息工程专业,毕业于湛江师范学院。 专业技能: ...
开发者需要关注内存管理,避免内存泄漏,合理地使用异步处理和多线程技术来提升应用的响应速度和流畅性。 7. 数据存储:iOS应用有多种数据存储选项,包括使用属性列表(Property List)、SQLite数据库和Core Data...