iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 25
0
自我挑戰組

Go to 放棄系列 第 25

先跳離複習個筆記 Concurrency

複習此共筆
引用此內容

一般 Worker 運行時會佔用到 CPU 的核心數,假如 Worker 的數量等同於 CPU 核心數, Worker 在進行 IO 時,該 CPU 就會是閒置的。
對一些追求效能的人來說,CPU 的閒置 = 浪費,所以會嘗試多開幾個 Worker,讓某個 Worker 進行 IO 時,其它 Worker 可以佔用空閒下來的 CPU 資源;但作業系統為了「公平」,會盡可能讓多個需要 CPU 資源的 Worker 輪流使用 CPU,這個從一個 Worker 切換成另一個 Worker 的過程稱為 Context Switch,並帶來一些運算資源的浪費。

那 JAVA, GoLang 呢

舉 JAVA 為例,JAVA 一台機器就一個 process ,而底下會有很多 thread 幫他做事,要注意,thread 是共用 memory 的! ,因此新增一台機器只會多一個 process 不會如 NodeJS 一樣成倍數成長,因此穩定度就成了大企業的首選。
情境:
今天來了 3 個 request (r1, r2, r3)
process 指定 r1 去 thread 1
process 指定 r2 去 thread 2
process 指定 r3 去 thread 3…

如有侵犯權利,再請通知 謝謝


上一篇
go => mongodb
下一篇
go -> mac os mongo
系列文
Go to 放棄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言