iOS 多线程概念

//联系人:石虎QQ: 1224614774昵称:嗡嘛呢叭咪哄

一、线程的概念

什么是进程:

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

什么是主线程:

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):线程执行只能依次逐一先后有序的执行,等待上一个执行完,再执行下一个。

注意:

一个进程可有多个线程。

一个进程可有多个队列。

队列可分并发队列和串行队列。

谢谢!!!

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • iOS多线程-概念 线程概述 有些程序是一条直线,起点到终点;有些程序是一个圆,不断循环,直到将它切断 一个运行着...
    kscorpio阅读 4,508评论 3赞 82
  • 又来到了一个老生常谈的问题,应用层软件开发的程序员要不要了解和深入学习操作系统呢? 今天就这个问题开始,来谈谈操...
    tangsl阅读 4,385评论 0赞 23
  • word直接复制来了,格式就不改了。至于这门课怎么复习,只要平时实验都认真完成、报告认真写,平时分都很高;考试的话...
    Jozhn阅读 5,025评论 0赞 8
  • Object C中创建线程的方法是什么?如果在主线程中执行代码,方法是什么?如果想延时执行代码、方法又是什么? 1...
    AlanGe阅读 1,974评论 0赞 17
  • 问题是一盏未燃的灯,思考是点亮,拒绝被洗脑,进行独立思考,拒绝大脑缓存化,进行深度思考,点亮心灯。 ...
    黄卫荣阅读 220评论 0赞 0

友情链接更多精彩内容