资讯专栏INFORMATION COLUMN

iOS开发之多线程浅析

xingqiba / 1859人阅读

摘要:谈谈你对多线程开发的理解中有几种实现多线程的法基本概念程序由源代码生成的可执行应用进程进程是程序本身一个正在运行的程序可以看做是一个进程线程线程是程序独立运行的代码段单线程概述每个正在运行的程序即进程至少包含一个线程这个线程是主线程主线程在

谈谈你对多线程开发的理解?ios中有⼏几种实现多线程的⽅法?

基本概念 程序

由源代码生成的可执行应用.

进程

进程是程序本身,一个正在运行的程序可以看做是一个进程.

线程

线程是程序独立运行的代码段.

单线程概述

每个正在运行的程序(即进程)至少包含一个线程,这个线程是主线程.
主线程在程序启动时被创建,用于执行main函数.
只有一个主线程的程序被称为单线程程序.主线程负责执行程序所有的代码(UI刷新,网络请求,数据加载),这些代码只能顺序执行,不能并发执行.

多线程概述

拥有多个线程的程序被称为多线程程序.
iOS允许用户自己开辟线程,相对于主线程而言,这些线程被称为子线程.
子线程与主线程都是独立运行的单元,相互不影响,所以可以并发执行.

单线程&多线程区别

单线程程序只有一个线程,所以代码顺序执行,容易出现代码阻塞(页面假死)等状态.
多线程程序各个线程独立执行,能有效避免代码阻塞,并提高程序运行性能.
注意:UI添加和刷新必须在主线程执行.

多线程实现种类

NSThread
NSOperationQueue
NSObject
GCD

多线程优点

使用多线程可以把程序中占用时间长的任务放到后台去执行,如视屏,下载等.

能够发挥多核处理器的优势,并发执行让系统运行的更快,更流畅,用户体验更好.

多线程缺点

更多的线程需要更多的内存空间.

当多个线程争夺一个资源的时候要注意安全的问题

线程同步和异步的区别?iOS中如何实现多线程的同步?


线程同步是指一个线程的执行要等上一个线程执行完毕才可以执行.
线程异步是指多个线程可以同时执行.
GCD可以实现线程同步,NSOperationQueue设置Operation个数来实现多线程同步.

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/15916.html

相关文章

  • Java爬虫之多线程下载IMDB中Top250电影的图片

    摘要:本次分享将在此基础上,利用多线程,提高程序运行的效率。思路本次分享建立在博客爬虫之下载中电影的图片上,总体的爬虫思路没有变化,只是在此基础上引入多线程。 介绍   在博客:Java爬虫之下载IMDB中Top250电影的图片中我们实现了利用Java爬虫来下载图片,但是效率不算太高。本次分享将在此基础上,利用多线程,提高程序运行的效率。 思路   本次分享建立在博客Java爬虫之下载IMD...

    wujl596 评论0 收藏0
  • Java NIO浅析

    摘要:阻塞请求结果返回之前,当前线程被挂起。也就是说在异步中,不会对用户线程产生任何阻塞。当前线程在拿到此次请求结果的过程中,可以做其它事情。事实上,可以只用一个线程处理所有的通道。 准备知识 同步、异步、阻塞、非阻塞 同步和异步说的是服务端消息的通知机制,阻塞和非阻塞说的是客户端线程的状态。已客户端一次网络请求为例做简单说明: 同步同步是指一次请求没有得到结果之前就不返回。 异步请求不会...

    yeooo 评论0 收藏0
  • webkit渲染机制浅析

    摘要:模块和将下面的渲染机制,安全机制,插件机制等等隐藏起来,提供一个接口层。进行网页的渲染进程,可能有多个。最后进程将结果由线程传递给进程最后,进程接收到结果并将结果绘制出来。 这是之前在简书上面的处女作,也搬过来了,以后就一直在 segmentfault 上面写文章了,webkit技术内幕-朱永盛是我大四买的书,很旧的一本书了,当时只看了一点点,一直没继续看完它,现在才看完,,,说来惭愧...

    Cobub 评论0 收藏0
  • Python爬虫之多线程下载豆瓣Top250电影图片

    摘要:本次爬虫项目将会用到模块中的类,多线程豆瓣电影图片。总结通过上述两个爬虫程序的对比,我们不难发现,同样是下载豆瓣电影,个网页中的图片,在没有使用多线程的情况下,总共耗时约,而在使用多线程个线程的情况下,总共耗时约秒,效率整整提高了约倍。 爬虫项目介绍   本次爬虫项目将爬取豆瓣Top250电影的图片,其网址为:https://movie.douban.com/top250, 具体页面如...

    shiyang6017 评论0 收藏0
  • 【Bugly干货分享】Android性能优化典范之多线程

    摘要:所以说,多线程是提升程序性能的有效手段之一,但是使用多线程却需要十分谨慎小心,如果不了解背后的执行机制以及使用的注意事项,很可能引起严重的问题。 本文涉及的内容有:多线程并发的性能问题,介绍了 AsyncTask,HandlerThread,IntentService 与 ThreadPool 分别适合的使用场景以及各自的使用注意事项,这是一篇了解 Android 多线程编程不可多得的...

    sunnyxd 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<