博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS开发之多线程浅析
阅读量:6931 次
发布时间:2019-06-27

本文共 732 字,大约阅读时间需要 2 分钟。

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

基本概念

程序

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

进程

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

线程

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

单线程概述

每个正在运行的程序(即进程)至少包含一个线程,这个线程是主线程.

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

多线程概述

拥有多个线程的程序被称为多线程程序.

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

单线程&多线程区别

单线程程序只有一个线程,所以代码顺序执行,容易出现代码阻塞(页面假死)等状态.

多线程程序各个线程独立执行,能有效避免代码阻塞,并提高程序运行性能.
注意:UI添加和刷新必须在主线程执行.

多线程实现种类

NSThread

NSOperationQueue
NSObject
GCD

多线程优点

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

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

多线程缺点

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

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

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


线程同步是指一个线程的执行要等上一个线程执行完毕才可以执行.

线程异步是指多个线程可以同时执行.
GCD可以实现线程同步,NSOperationQueue设置Operation个数来实现多线程同步.

转载地址:http://svecl.baihongyu.com/

你可能感兴趣的文章
关于注册github
查看>>
redis几种数据类型以及使用场景
查看>>
Silverlight 游戏开发小“.NET研究”技巧:技能冷却效果(Cooldown)
查看>>
Amazon RDS多区域高可用测试
查看>>
(五)java spring cloud版b2b2c社交电商spring cloud分布式微服务-路由网关(zuul)
查看>>
windows 7默认进入安全模式
查看>>
python从入门到放弃QAQ
查看>>
Java操作数据库之类的封装!...
查看>>
C# 对字符串操 替换数字 替换非数字 去除首尾字符
查看>>
Knockout: 实践CSS绑定和afterkeydown事件, 给未通过校验的输入框添加红色边框突出显示; 使用afterkeydown事件自动将输入转大写字母....
查看>>
JAVA JDK环境变量的配置
查看>>
mysql 修改字段属性 删除字段为NULL的数据
查看>>
python输入输出及变量
查看>>
RI & FI
查看>>
VS使用的一些备忘东西
查看>>
CSS实现底部弧度效果
查看>>
bootstrap
查看>>
记一次忧伤的故事-线上bug
查看>>
alertdialog简单用法
查看>>
Android studio & SDK的国内有效站点。
查看>>