专栏首页iOS 开发杂谈iOS多线程之一:基本概念

iOS多线程之一:基本概念

计算机操作系统都有的基本概念,以下概念简单方式来描述。

进程:就是一个正在执行的程序。 线程:是执行程序最基本的单元,它有自己栈和寄存器。

进程和线程的区别 进程和线程的主要差别在于它们是不同的操作系统资源管理方式,进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。

并发:多个任务同时发生,需要被处理。比如,田径赛场上的起跑线上有多个运动员等待起跑。 并行:在某一个时间能够同时处理多个任务。比如,火车站开放了多个检票口,同一时间能够服务多个旅客。 串行:线程执行只能依次逐一先后有序的执行,串行中,一个任务的执行必须以上一个任务执行结束为前提。

串行和并行主要区别在于一个任务的执行是否以上一个任务的完成为前提。串行中,一个任务的执行必须以上一个任务执行结束为前提,并行中,一个任务的执行与上一个任务的执行状态无关。以排队买票为例,串行像单个买票队伍,单个卖票窗口,必须一个一个来,串行像单个买票队伍,多个卖票窗口,多个人可以同时买票。

同步:就是顺序往下执行。举例:烧完水后泡茶 异步:就是几件事情同时在执行。烧水的时候拿出茶具,洗茶具,然后泡茶。其中烧水和拿茶具,洗茶具是同时进行的。

二、iOS多线程方案

iOS中其实目前有4套多线程方案,他们分别是: 1、pthreads 2、NSThread 3、GCD 4、NSOperation & NSOperationQueue

参考:(http://www.cnblogs.com/lmule/archive/2010/08/18/1802774.html)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • iOS多线程之四:NSOperation的使用

    一、NSOperation NSOperation是苹果公司对GCD的封装,完全面向对象,但是比GCD拥有更强的可控性和代码可读性。所以使用起来更好理解。 ...

    s_在路上
  • 如何手动实现一个 UIScrollView

    UIKit 坐标系每一个 View 都定义了他自己的坐标系,如下图所示,x 轴指向右方,y 轴指向下方:

    s_在路上
  • iOS多线程之二:NSThread的使用

    NSThread NSThread封装性最差,最偏向于底层,主要基于thread使用,生命周期需要手动管理,所以这套方案也是偶尔用用,比如 [NSThread...

    s_在路上
  • Java并发编程实战系列6之任务执行(Task Execution)

    1. 在线程中执行任务 1.1 串行的执行任务 这是最经典的一个最简单的Socket server的例子,服务器的资源利用率非常低,因为单线程在等待I/O操作完...

    JavaEdge
  • 【死磕Java并发】-----J.U.C之线程池:线程池的基础架构

    原文出处http://cmsblogs.com/ 『chenssy』 经历了Java内存模型、JUC基础之AQS、CAS、Lock、并发工具类、并发容器、阻塞队...

    用户1655470
  • Spring -- 定时任务调度的发展

    Java领域的调度最早一般认为是Timer,接着由Quratz创造调度器(Scheduler)、任务(Job)和触发器(Trigger)三个核心概念后开始发展,...

    屈定
  • 带你了解控制线程执行顺序的几种方法

    通常情况下,线程的执行顺序都是随机的,哪个获取到CPU的时间片,哪个就获得执行的机会。不过实际的项目中有时我们会有需要不同的线程顺序执行的需求。借助一些java...

    用户7634691
  • Golang 定时任务管理

    本文基于Golang Crontab 实现了一个Crontab Job Manager。更加容易使用,同时也能够满足更加复杂的场景。

    李海彬
  • Netty中的这些知识点,你需要知道!

    Channel是一个接口,而且是一个很大的接口,我们称之为“大而全”,囊括了server端及client端接口所需要的接口。

    WindWant
  • Go mod的简单实践

    Go mod简介: Go mod是官方推荐的包管理方式,开始于go1.11,在go1.12版本基本稳定,go1.13之后开始默认开启。

    灰子学技术

扫码关注云+社区

领取腾讯云代金券