c語(yǔ)言消息隊(duì)列的創(chuàng)建 如何在windows下用c 實(shí)現(xiàn)消息隊(duì)列?
如何在windows下用c 實(shí)現(xiàn)消息隊(duì)列?有很多方法可以使用它。如果通話頻率不高,我會(huì)做定量分析程序。通常,我使用C來(lái)啟用python進(jìn)程。pypy的速度更快。Pypy將結(jié)果生成到redis或mys
如何在windows下用c 實(shí)現(xiàn)消息隊(duì)列?
有很多方法可以使用它。
如果通話頻率不高,我會(huì)做定量分析程序。通常,我使用C來(lái)啟用python進(jìn)程。pypy的速度更快。Pypy將結(jié)果生成到redis或mysql的內(nèi)存表中。調(diào)用后,C轉(zhuǎn)到redis或mysql的內(nèi)存表,也可以用文件寫入來(lái)完成,但文件寫入很容易出現(xiàn)不同步,不想用網(wǎng)絡(luò)版,可以用SQLite來(lái)寫結(jié)果,然后用SQLite在另一個(gè)程序中讀取。如果它類似于Internet服務(wù),則可以使用消息隊(duì)列和消息服務(wù)器進(jìn)行通信。如果您的程序需要線程安全和關(guān)鍵區(qū)域保護(hù),最好使用消息隊(duì)列來(lái)支持多線程和多進(jìn)程同時(shí)訪問(wèn)。消息隊(duì)列比數(shù)據(jù)庫(kù)存儲(chǔ)速度快,但不便于數(shù)據(jù)庫(kù)存儲(chǔ)。
vedis的原生版本有C版本,高仿redis的嵌入式版本。您可以使用這個(gè)初始開(kāi)發(fā)。如果您需要切換到redis,您可以輕松地將vedis修改為redis。SSDB可以在地面存儲(chǔ)redis。SSDB是高仿redis的存儲(chǔ)版本。
如果沒(méi)有數(shù)據(jù)存儲(chǔ),可以使用套接字通信或多進(jìn)程通信。例如,chrome是多進(jìn)程的,命名管道用于通信。理論上,這可以用于多語(yǔ)言之間的調(diào)用。命名管道比消息隊(duì)列快,但需要自定義。調(diào)用方法的協(xié)議可以用JSON來(lái)完成,因此一般可以使用n種多語(yǔ)言。如果我們追求性能,我們可以使用二進(jìn)制通信協(xié)議。
Python調(diào)用C語(yǔ)言的方法也很成熟,但需要編寫一些代碼打包,需要防止內(nèi)存泄漏、多線程同步、阻塞、異常等問(wèn)題。
我現(xiàn)在沒(méi)學(xué)完C語(yǔ)言,但是學(xué)校已經(jīng)開(kāi)了數(shù)據(jù)結(jié)構(gòu)課程,感覺(jué)像聽(tīng)天書(shū)一樣,如何更好地理解數(shù)據(jù)結(jié)構(gòu)?
首先,我認(rèn)為作為一名大學(xué)生,自學(xué)能力很強(qiáng)。對(duì)于C語(yǔ)言沒(méi)有學(xué)完的,可以花時(shí)間認(rèn)真學(xué)習(xí)。不,你可以去圖書(shū)館查資料,或者上網(wǎng),或者自學(xué)?,F(xiàn)在網(wǎng)絡(luò)平臺(tái)有很多優(yōu)質(zhì)資源,你可以試試。第二,數(shù)據(jù)結(jié)構(gòu)的算法是抽象的,必須認(rèn)真研究。它是編程的基礎(chǔ),與C語(yǔ)言沒(méi)有必然的聯(lián)系。我們可以用C語(yǔ)言實(shí)現(xiàn)一些算法。它也可以用其他語(yǔ)言實(shí)現(xiàn)。
第三,對(duì)自己有信心。沒(méi)有問(wèn)題可以與老師和同學(xué)交流。既然我們選了一個(gè)好專業(yè),就應(yīng)該深入學(xué)習(xí)。
這是我的一些看法,希望對(duì)您有所幫助!