c++隊(duì)列 為什么當(dāng)今消息隊(duì)列沒有一個(gè)用python實(shí)現(xiàn)的版本?
為什么當(dāng)今消息隊(duì)列沒有一個(gè)用python實(shí)現(xiàn)的版本?謝謝!究其原因,是受全局解釋器鎖Gil的影響,Python的多進(jìn)程以多線程、單進(jìn)程的方式執(zhí)行,這是Python的硬傷。因此,許多消息隊(duì)列事務(wù)無法快速
為什么當(dāng)今消息隊(duì)列沒有一個(gè)用python實(shí)現(xiàn)的版本?
謝謝!究其原因,是受全局解釋器鎖Gil的影響,Python的多進(jìn)程以多線程、單進(jìn)程的方式執(zhí)行,這是Python的硬傷。因此,許多消息隊(duì)列事務(wù)無法快速處理。多線程、多處理和Gil是相互依存、相互制約的。它可以更快地處理成千上萬的數(shù)據(jù)。如果是百萬級(jí)的數(shù)據(jù),那就沒用了。所以最好用它來處理輕量級(jí)消息隊(duì)列。
queue隊(duì)列可以多長python?
我沒有試過,但應(yīng)該不超過2GB。這是32位版本Python留下的內(nèi)存管理缺陷。通常,如果大小超過500MB,速度會(huì)非常慢。在實(shí)際應(yīng)用環(huán)境中,隊(duì)列的數(shù)量不應(yīng)超過上萬個(gè)。通常最好控制在幾百以下。還可以在單個(gè)消息隊(duì)列服務(wù)器中緩存數(shù)百萬條數(shù)據(jù)。然而,python隊(duì)列顯然不是這樣一個(gè)企業(yè)應(yīng)用程序。