多线程开发中的一些基本概念的理解

2019-08-03  本文已影响0人  黑糊糊的梦想家

进程、线程、队列(串行队列、并行队列)、同步(dispatch_sync)、异步(dispatch_async)、并发、并行、阻塞、死锁

进程指一段正在执行的程序。一个进程可以拥有多个线程,各个线程之间共享程序的内存空间

线程指程序在执行过程中,能够执行程序代码的一个执行单元。线程是程序执行的最小单元

队列是用来承载任务的,任务承载的容器

同步、异步是用来给队列追加任务的

添加的任务由线程来执行

队列特点:先进先出(FIFO)

串行队列:执行队列中的任务时,后执行的任务会等待先执行的任务执行结束再执行,在时间轴上有明显的先后顺序

并行队列:执行队列中的任务时,不会等待上一个任务执行结束就会立即执行下一个任务,在时间轴上任务看起来是同时执行

并发:同一时间点出现的任务有多个

并行:同一时间同时执行多个任务,多线程决定并行的发生

同步(dispatch_sync):给队列追加任务,dispatch_sync 函数会等待任务执行完后返回,造成线程等待,即阻塞线程

异步 (dispatch_async):给队列追加任务,dispatch_async 函数不做任何等待就会返回,因此不会造成线程阻塞

阻塞:阻塞是阻塞的线程,即线程阻塞,同步函数会造成线程阻塞

死锁:给串行队列添加同步任务时,如果串行队列与当前线程的队列是同一个队列就会造成死锁

上一篇下一篇

猜你喜欢

热点阅读