我正在嘗試模擬一個分散的系統,但在給定真實引數的情況下無法模擬。
真實世界:
- 每個模塊都有自己的計算機,它們通過網路進行通信
- 可能有數十萬個模塊
- 他們將相互通信以執行某個動作
模擬:
- 每個模塊都被認為是自己的執行緒,因為它們正在異步作業
- 不能真正產生超過 1,000 個執行緒
- 執行緒與模塊的比率為 1 比 1
每個模塊產生一個執行緒是正確的方法嗎?從理論上講,這似乎是正確的方法,但在實踐中,它在大約 1,000 個執行緒時遇到了限制。
uj5u.com熱心網友回復:
您的背景關系與演員模型完美匹配
https://en.wikipedia.org/wiki/Actor_model
通過回應解釋它是不可能的,從 wiki 鏈接開始并以您使用的語言搜索一些實作,但它做了什么您需要,您可以模擬數百萬個“孤立狀態”并使用很少的資源管理它們的突變并發(您應該能夠用很少的執行緒達到 1K 個演員,也許還有 2 個)。
此外,現在許多語言都提供(以其風格)輕量級執行緒版本,可用于減少使用的實際執行緒數量(goroutine、kotlin coroutines、java fiber 等)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/447431.html
下一篇:同時啟動執行緒并爭議全域變數
