色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

多線程消息隊列

方一強2年前24瀏覽0評論
多線程消息隊列?

看什么情況下使用,方法很多。

如果調用頻度不高,我做量化分析程序一般是用c++啟用python進程,用的pypy速度快點,pypy生成結果到redis或mysql的內存表中,調用結束后c++去redis或mysql的內存表中取出來,你也可以使用文件寫入來完成,但文件寫入容易出現不同步問題,不想用網絡版的,可以用sqlite寫入結果,再在另外一個程序用sqlite讀取。如果類似互聯網業務,可以使用消息隊列,消息服務器通信。如果你的程序需要線程安全,需要臨界區保護,最好用消息隊列這種支持多線程多進程同時訪問,消息隊列比數據庫存儲要快,但沒有數據庫方便。

有個c++版的本機版vedis,高仿redis的嵌入版,你可以用這個初期開發,如果需要切換到redis,很容易修改vedis成redis,ssdb可以把redis落地存儲,ssdb是高仿redis的存儲版。

如果沒有數據存儲,可以使用socket通信,或用多進程通信,如chrome是多進程的,通信用的命名管道(Named Pipe),多語言之間調用理論上可以用這個。命名管道要比消息隊列快,但需要自己定制。調用方法的協議,可以使用json來完成,這樣n多語言都可以通用,如果追求性能可能使用二進制通信協議。

python調用c語言方法也很成熟,但需要自己寫一些代碼包裝一下,需要防止內存泄漏,多線程同步,阻塞,異常等問題。