美文网首页
多线程基本概念

多线程基本概念

作者: dotaer | 来源:发表于2016-12-25 23:18 被阅读0次

1.同步&异步

同步和异步通常用来形容一次方法的调用。

同步方法一旦开始调用,调用者必须等待调用方法的返回,才能继续下面的操作。

异步方法更像一次消息的传递,不必等待调用方法的返回,一旦调用,立即返回,继续下面的操作,被调用的方法在另外一个线程中执行。

2.并发&并行

并发和并行这两个概念比较容易混淆,他们都表示两个或多个任务一起执行,但是偏重点不同。并发偏重于多个任务交替执行,而多个任务间还可能是串行的,而并行才是真正意义上的“同时执行”。

严格意义上讲,并行的多个任务是真实的同时执行,而对于并发来讲,这个过程只是交替的,一会执行任务A,一会又执行任务B,系统会在A和B之间不停的切换,但对于外部观察者来说,即使多个任务之间是串行的,也会造成并行的错觉。

举个例子,古人云“食不言,寝不语”中的上半句,意思是说吃饭的时候不能说话,这里我们把吃饭和说话当做任务A和任务B,在我们现在的生活当中,平时聚餐大家都是边吃边说,就是任务A和B在交替串行,这就是并发。

还有我们在旅游时,一边走路一边看风景,这里走路和看风景就是两个不同的任务,我们“边走边看”,其实就是并发,当我们做到缆车中行进的时候,这个时候“走路”和“看风景”就是并行了。

3.临界区

临界区用来表示一种共享资源或共享数据,可以被多个线程使用,但是每一次,只能有一个线程使用它,当临界区的资源被一个线程占用时,其他线程要使用临界区的数据,必须等待。

比如,办公室中的打印机就好比临界区,两个员工同时打印文件,只能有一个先打印,另一个后打印,对于打印机而言,不可能同时打两份文件。

4.阻塞&非阻塞

阻塞和非阻塞表示多线程间的相互影响,比如A线程占用了临界区的资源,在释放资源前,B和C线程需要这个临界区的资源的时候,就必须等待,等待会导致线程挂起,这就是阻塞。非阻塞刚好相反,A、B、C三个线程之间不会互相妨碍

相关文章

  • iOS多线程之 pThread

    前面总结了多线程的基本概念,今天学习总结一下多线程的其中一种实现方案pThread 一、基本概念 pThread(...

  • 高并发多线程总结

    1.多线程基本概念 首先,我们要理解多线程编程,必须清楚几个基本概念:进程——进程是操作系统层面的概念,它是操作系...

  • iOS 多线程之GCD

    目录 GCD的基本概念 Dispatch Queue Dispatch Group 一、GCD的基本概念 多线程的...

  • iOS开发多线程篇--基本概念和创建方式

    目录 一 基本概念 二 OC中的多线程 一 基本概念 多线程按字面意思是同步完成多项任务,提高了资源的使用效率,从...

  • Chapter 10. 多线程

    阅读原文 Chapter 10. 多线程 10.1 多线程概述 基本概念:程序 - 进程 - 线程 程序(prog...

  • 2.iOS多线程

    多线程的四种解决方案:pthread,NSThread,GCD,NSOperation 一、多线程的基本概念进程:...

  • iOS - 多线程NSThread的使用

    一、多线程的基本概念: 1. 多线程的原理: 多线程是循环切换执行的 线程执行完毕之后会自动销毁 2. 多线程的优...

  • iOS原理(八)----多线程

    iOS原理(八)----多线程 基本概念 iOS常见的多线程方案有以下四种: pthread:是一套通用的多线程C...

  • iOS多线程之NSThread

    前面总结了多线程基本概念和iOS多线程PThread的使用,下面接着总结iOS多线程的另外一种实现方案NSThre...

  • iOS开发多线程那些事儿

    iOS中的多线程 iOS中多线程实现的多种技术方案: 多线程的两组基本概念 串行(Serial):在固定时间内只能...

网友评论

      本文标题:多线程基本概念

      本文链接:https://www.haomeiwen.com/subject/hzvdvttx.html