美文网首页
多线程开发中的一些基本概念的理解

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

作者: 黑糊糊的梦想家 | 来源:发表于2019-08-03 14:57 被阅读0次

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

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

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

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

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

    添加的任务由线程来执行

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

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

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

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

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

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

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

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

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

    相关文章

      网友评论

          本文标题:多线程开发中的一些基本概念的理解

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