首先來了解一下并發(fā)、串行一睁、異步、同步的區(qū)別:
1佃却、并發(fā)隊列將任務分配到線程執(zhí)行時者吁,不需要等待函數(shù)的返回即可執(zhí)行下一個任務
2、串行隊列需要等待任務的返回才能執(zhí)行下一個任務
3饲帅、同步任務會在當前線程執(zhí)行复凳,異步任務會在另外的線程執(zhí)行
在同一個串行隊列中執(zhí)行同步操作會發(fā)生死鎖瘤泪。
在串行里執(zhí)行同步操作,由于是同步操作育八,所以要等待上一個串行任務完成才能執(zhí)行对途,而外面是串行,要等待里面的同步操作完成才能結束髓棋,造成了相互等待实檀。
死鎖是由于隊列阻塞而非線程原因引起的。