【从零开始的Swift开发心路历程-Day28】认识GCD多执行绪Part1

GCD(Grand Central Dispatch)是由苹果开发用来操作Thread的API
而在认识GCD之前,我们必须先认识几个重要的名词

SerialQueue与ConcurrentQueue

  • Serial(依序排列的)
    意思是这个Queue里的工作必须按照顺序执行,而且要等前一个工作执行完,下一个工作才能开始执行。
    举个例来说,大家就学时应该都跑过大队接力吧!而你必须等上一棒把接力棒传给你之後才能开始冲刺,如果偷跑的话,那可就犯规罗~
  • Concurrent(同时发生的)
    相较於Serial,Concurrent的意思是这个Queue里的工作必须按照顺序「开始」执行,所以不用等到上一个工作执行完下一个工作才能执行,这样大家可能有点混乱,所以我举个例来说明!
    假设一名厨师今天要煮一锅汤及一道菜,而他先煮了汤,以Serial来说,他必须等到汤滚了才能开始煮菜,但是以Concurrent来说,他可以在把料丢进去汤里等汤滚的这段时间就开始煮菜,这样大家懂了吗!

Synchronous与Asynchronous

  • Synchronous(同步的)
    Synchronous指的是function要等到完成里面的所有工作才会回传值
  • Asynchronous(非同步的)
    Asynchronous指的是function一有工作完成就会马上回传值,而不需要等到全部完成才回传

那今天我们就先介绍到这边~明天将会用程序码来说明把Synchronous、Asynchronous与SerialQueue、ConcurrentQueue做排列组合後会如何吧~


<<:  Day40 ( 电子元件 ) 旋钮控制 LED 亮度

>>:  Day26 Bootstrap建立网页

Day 3 隐私三宝存在的意义

如同Day 2提到的角落生物,俗称隐私服务三宝之称的服务条款(Term of use/Term of...

数位AI化

人的科技文明发展始终来自於人性 在疫情後的时代,所有的一切都将发生改变,这已经是一个不能逆转的趋势了...

让UITableView来表演 Day6

前几天都跑去快乐学潜水,每天回家还要生出内容,不免的前几篇有些偷懒,当然之後会把前面的一些内容多给补...

Powershell 入门之函数

前面,我们已经知道了,如何去编写 powershell 脚本,今天我们就一起来看看,其他的功能。通过...

RxJS 错误处理 Operators (1) - catchError / finalize / retry / retryWhen

今天来介绍一些跟「错误处理」有关的 operators。在使用 RxJS 时,资料流是透过 pipe...