回覆列表
  • 1 # 使用者3437194056779

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

    如果呼叫頻度不高,我做量化分析程式一般是用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語言方法也很成熟,但需要自己寫一些程式碼包裝一下,需要防止記憶體洩漏,多執行緒同步,阻塞,異常等問題。

  • 2 # 使用者5189701024573

    用連結串列串接,然後設計一種通用的資料結構,這個資料結構應該至少兩個項,一個是表明資料的型別,一個是資料的指標,這樣你到時候可以根據型別強制轉換成你定義的類,而型別一般是int型別的,比如1代表你第一個類,2代表第二個類,。。。然後資料指標定義成void *,可以接收任意型別的指標。然後把這個資料結構當做連結串列的資料來串接。

  • 中秋節和大豐收的關聯?
  • 骨柝病人那些東西不好吃?