記一次流水線工作單元設計 golang

2021-10-09 09:58:42 字數 586 閱讀 6953

先用一張圖描述乙個golang併發程式在執行時的groutine processor,groutine和cpu的結構形態,和他們之間的關係。

簡單說,這張圖詳細展示了某一時刻,程式對cpu資源的使用情況。

第乙個觀點: groutine在建立時,並不能指定要放入到哪個groutine processor。理由之一,groutine processor的排程策略包括任務竊取,即當自身的groutine佇列沒有可執行的groutine時,或從其他的groutine processor的groutine佇列(應該是從隊尾)中竊取一些可執行的groutine新增到自身的groutine佇列中並執行。(這裡的「可執行」包括groutine存在且不被阻塞

第二個觀點:p和m之間的排程,會涉及執行緒的上下文切換,即涉及系統呼叫(從使用者空間的執行切換到核心空間的執行)。

以上知識會引出本篇文章的主題,如何將乙個流水線的各項工作合理的分配到有限的groutine上,並合理充分利用的cpu資源。

剩餘部分,不久更新。

記一次國內投德國IT工作機會

受到某前同事的鼓舞,更新了簡歷,投了幾個visa sponsor的公司。沒幾天收到德國一家公司的反饋,然後約了第一面。第一面是hr面試,介紹了一下公司背景,問了一下個人情況,還問了一下我會什麼語言,設計模式等等問題。接下來是project challenge,題目是用espresso寫用例,然後在c...

記一次無腦的UI調整工作

調了一上午的頁面發現思路錯了。首先說下需求 在乙個表單頁面將兩個塊級元素放在一行,網上搜了下解決方案,就是將兩個塊級元素都轉換成行級別,然後分別給個浮動。我當時想著自己重寫一下樣式結構,寫著寫著把html文件結構重寫了,第乙個頁面自測發現沒問題,後面寫了新增頁面,複製過去,樣式調整好,發現上傳出現了...

記一次離奇的calico工作異常

現象 處於不同節點之間容器網路互訪不能連通,但是同乙個節點中的容器互訪是通暢的,但是跨節點可以ping通,可以curl通部分介面 嘗試在網上找到相關解決方案,所有解決方案都是關於calico的配置檔案問題的,由於calico是使用指令碼安裝的,所以理論上不會出現問題,檢查配置檔案也未找到相關問題,暫...