当前位置: 移动技术网 > IT编程>移动开发>IOS > iOS 多线程概念

iOS 多线程概念

2018年10月12日  | 移动技术网IT编程  | 我要评论

没收你的爱,嘉峪关市一中,木犀瓜片是什么菜系

ios 多线程概念。

一、线程的概念

什么是进程:

一个运行着的程序就是一个进程或者叫做一个任务,一个进程至少包含一个线程,线程就是程序的执行流。

什么是主线程:

mac和ios中的程序启动,创建好一个进程的同时,一个线程便开始运行,这个线程叫主线程。

1.主线程在程序中的地位和其他线程不同,它是其他线程最终的父线程,且所有界面的显示操作即appkit或 uikit的操作必须在主线程进行。

2.中的每一个进程都有自己独立的虚拟内存空间,而同一个进程中的多个线程则共用进程的内存空间。3.每创建一个新的线程,都需要一些内存(如每个线程有自己的stack空间)和消耗一定的cpu时间。

4.另外当多个线程对同一个资源出现争夺的时候需要注意线程安全问题

二、多线程的实现原理:

虽然在同一时刻,cpu只能处理1条线程,但是cpu可以快速地在多条线程之间调度(切换),造成了多线程并发执行的假象。

三、多线程的优点和缺点

优点:

能适当提高程序的执行效率。

能适当提高资源利用率(cpu、内存利用率)。

缺点:

创建线程是需要成本的:ios下主要成本包括:在栈空间的子线程512kb、主线程1mb,创建线程大约需要90毫秒的创建时间。

线程越多,cpu在调度线程上的开销就越大。

线程越多,程序设计就越复杂:因为要考虑到线程之间的通信,多线程的数据共享。

四、计算机操作系统概念

  • 进程:一个具有一定独立功能的程序关于某个数据集合的一次运行活动。可以理解成一个运行中的应用程序。
  • 线程:程序执行流的最小单元,线程是进程中的一个实体。
  • 同步:只能在当前线程按先后顺序依次执行,不开启新线程。
  • 异步:可以在当前线程开启多个新线程执行,可不按顺序执行。
  • 队列:装载线程任务的队形结构。
  • 并行队列(concurrent dispatch queue):线程执行可以同时一起进行执行,不需要上一个执行完,就能执行下一个的。
  • 串行队列(serial dispatch queue):线程执行只能依次逐一先后有序的执行,等待上一个执行完,再执行下一个。
    1. 注意:
    2. 一个进程可有多个线程。
    3. 一个进程可有多个队列。
    4. 队列可分并发队列和串行队列。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

  • ios uicollectionview实现横向滚动

    现在使用卡片效果的app很多,之前公司让实现一种卡片效果,就写了一篇关于实现卡片的文章。文章最后附有demo实现上我选择了使用uicollectionview ... [阅读全文]
  • iOS UICollectionView实现横向滑动

    本文实例为大家分享了ios uicollectionview实现横向滑动的具体代码,供大家参考,具体内容如下uicollectionview的横向滚动,目前我使... [阅读全文]
  • iOS13适配深色模式(Dark Mode)的实现

    iOS13适配深色模式(Dark Mode)的实现

    好像大概也许是一年前, mac os系统发布了深色模式外观, 看着挺刺激, 时至今日用着也还挺爽的终于, 随着iphone11等新手机的发售, ios 13系统... [阅读全文]
  • ios 使用xcode11 新建项目工程的步骤详解

    ios 使用xcode11 新建项目工程的步骤详解

    xcode11新建项目工程,新增了scenedelegate这个类,转而将原appdelegate负责的对ui生命周期的处理担子接了过来。故此可以理解为:ios... [阅读全文]
  • iOS实现转盘效果

    本文实例为大家分享了ios实现转盘效果的具体代码,供大家参考,具体内容如下demo下载地址: ios转盘效果功能:实现了常用的ios转盘效果,轮盘抽奖效果的实现... [阅读全文]
  • iOS开发实现转盘功能

    本文实例为大家分享了ios实现转盘功能的具体代码,供大家参考,具体内容如下今天给同学们讲解一下一个转盘选号的功能,直接上代码直接看viewcontroller#... [阅读全文]
  • iOS实现轮盘动态效果

    本文实例为大家分享了ios实现轮盘动态效果的具体代码,供大家参考,具体内容如下一个常用的绘图,主要用来打分之类的动画,效果如下。主要是ios的绘图和动画,本来想... [阅读全文]
  • iOS实现九宫格连线手势解锁

    本文实例为大家分享了ios实现九宫格连线手势解锁的具体代码,供大家参考,具体内容如下demo下载地址:效果图:核心代码://// clockview.m// 手... [阅读全文]
  • iOS实现卡片堆叠效果

    本文实例为大家分享了ios实现卡片堆叠效果的具体代码,供大家参考,具体内容如下如图,这就是最终效果。去年安卓5.0发布的时候,当我看到安卓全新的material... [阅读全文]
  • iOS利用余弦函数实现卡片浏览工具

    iOS利用余弦函数实现卡片浏览工具

    本文实例为大家分享了ios利用余弦函数实现卡片浏览工具的具体代码,供大家参考,具体内容如下一、实现效果通过拖拽屏幕实现卡片移动,左右两侧的卡片随着拖动变小,中间... [阅读全文]
验证码:
移动技术网