從王者榮耀與女朋友,看懂“併發”與“上下文切換”

​首先我們要知道 併發並行 的區別,

  • 並行 纔是真正的同時發生 —— 比如,你一邊打王者榮耀一邊泡腳;

  • 併發 只是 邏輯上的並行 ,充分利用時間碎片去處理多件事 —— 比如,你一邊打王者榮耀一邊和女朋友聊天,只有在 死亡回城 時間你纔可能會 切出去 回覆一下女友的消息。對於你的女友,她覺得你一直在和她聊天;對於你的隊友,他們覺得你一直在和他們一起打遊戲。也就是說,表面上看起來像是同時發生的,而這個切出去切回來的過程,就是 上下文切換

  • 上下文切換開銷 ,顯然,由於團戰或者多哄女朋友兩句,導致切出和切入的時間造成延遲,你的女友可能會埋怨你在忙什麼心不在焉,你的隊友可能會投訴你掛機行爲,這就是上下文切換帶來的成本,即 上下文切換開銷 !這也是Redis那麼快的原因之一,單線程作戰,沒有切換開銷​。

  • 調度算法 ,另外,你可能特別害怕女友生氣,又不想掛機,所以你總是保持打一會兒遊戲就切出去回兩句,不一定非要等到死亡或回城;你也可能不怎麼害怕女友生氣,不死不回城就不切出去回覆女朋友(我想這樣的人最後都成了單身吧,,,),上述兩種處理方式,分別對應着UNIX系統與Windows系統的CPU競爭策略 —— 時間片調度搶佔式調度 ,,,

下面讓我們用一個視頻來看懂 併發上下文切換
《一個視頻看懂“併發”與“上下文切換”》


往期推薦

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章