iOS 多线程概念
来源:互联网 发布:编程课 编辑:程序博客网 时间:2024/05/22 16:30
//联系人:石虎 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):线程执行只能依次逐一先后有序的执行,等待上一个执行完,再执行下一个。
- 注意:
- 一个进程可有多个线程。
- 一个进程可有多个队列。
- 队列可分并发队列和串行队列。
谢谢!!!
阅读全文
1 0
- iOS 多线程概念
- iOS开发 - 多线程相关的概念
- 多线程概念
- 多线程概念
- 多线程 概念
- 多线程概念
- 多线程概念
- 多线程概念
- 多线程概念
- 多线程 概念
- 多线程概念
- 多线程概念
- 多线程概念
- 多线程概念
- ios多线程操作(四)—— GCD核心概念
- ios多线程操作(四)—— GCD核心概念
- iOS开发多线程篇—多线程的的相关概念(1)
- iOS-进程与线程概念以及iOS的三种多线程技术
- 编码格式简介(ANSI、GBK、GB2312、UTF-8、GB18030和 UNICODE)
- 前端——第六天
- centos忘记root密码的解决方法
- PhpStorm 8.0.3中文版
- JSP
- iOS 多线程概念
- 你绝对不能错过的7款开源硬件架构
- ReactRouter升级 v2 to v4
- 针对python机器学习与实战代码在python3上运行出现的错误分析和warning的修改代码34—38
- 提升PPT逼格的利器!只需1招,让PPT页面化腐朽为神奇~
- Python异常:Django1.11--context must be a dict rather than RequestContext.
- 解决MySQL每隔8小时自动断开连接的问题
- JDBC中DAO+service设计思想
- #if _MSC_VER > 1000 #pragma once #endif 作用解释