各路C++大俠們好,請教個問題,比如我要做一個c++的程式,界面和底層是分離的,界面用Qt,底層用標準C++
具體功能有:
1. 用http或者websocket獲取服務器的資料
2. 復雜計算,用到浮點、乘開方
3. 顯示波形,要流暢,不能卡頓
4. 存盤資料,保存到硬碟,csv格式帶時間戳
5. 串口通信,控制其他設備
我是做嵌入式C的,現在要上這個專案,是不是要用到多執行緒框架,網路資料量有點大,大概10ms更新一次資料,計算也要用到很多浮點開方之類,如果用標準C++11的多執行緒的話,架構不知道做,直接開5個執行緒,然后用執行緒間通信嗎,有沒有好的架構可以推薦,謝謝了
uj5u.com熱心網友回復:
網路接收一般用子執行緒。業務如果非常費時,也要子執行緒。
uj5u.com熱心網友回復:
評估將要運行專案的設備的硬體條件,選擇合適的架構方案。uj5u.com熱心網友回復:
就是說是開多個執行緒,每個執行緒跑自己的任務,用全域變數通信是嗎
uj5u.com熱心網友回復:
大佬們,給點架構方面的建議啊,好的架構就是成功了一半,謝謝了uj5u.com熱心網友回復:
這個一兩句說不清楚,總之:1、io執行緒和work執行緒分離
2、資料和界面分離
3、遵詢一些原則,因為有些是不可以兼顧的
4、建議總體設計遵循基本的一些設計原則,有很多
uj5u.com熱心網友回復:
1、服務器資料接收使用單執行緒2、資料計算單執行緒
3、ui顯示有qt的主執行緒,可以采用model/view模式
4、資料存盤也可以開單獨執行緒
5、串口通信可以做一個執行緒
執行緒間通信使用qt的話,就用信號槽。c++也有類似的信號槽回呼機制,不要使用全域變數,會讓代碼變的復雜。
uj5u.com熱心網友回復:
用多執行緒沒什么不好 在功能模塊中 一個執行緒跟服務器通信 一個執行緒做設備控制讀寫串口 還可以單獨開一個執行緒與主界面做互動(甚至也可通過網路互動,這樣你的界面模塊可以放在單獨一臺控制臺機器上)uj5u.com熱心網友回復:
用QT很方便的,QT好像有直接的庫可以支持串口。不過畫圖就麻煩一點了,QT倒有個控制元件可以直接使用,但是要收費(不付費會有水印)。這個用多執行緒不難設計的,設計合理的話,感覺用不到多少執行緒通信。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/14286.html
標籤:C++ 語言
上一篇:openssl使用問題
