更新時間:2018-01-05 來源:黑馬程序員 瀏覽量:
I. 研究來由
在屏幕共享項目里需要用到共享內(nèi)存,但是之前對QSharedMemory實在不熟悉,因此在Mac上使用了mmap,而windows系統(tǒng)使用了CreateFileMapping。既然QT提供了跨平臺共享內(nèi)存機制,那么還是研究研究吧。
II. 注意事項
QSharedMemory雖然是跨平臺的進程間內(nèi)存共享方案,但是在不同的平臺也是有不同的行為的,主要的區(qū)別是:
· windows平臺下,所有的進程退出后,即使進程crash,共享內(nèi)存對象也會被內(nèi)核銷毀。
· unix平臺下,如果有進程crash,導(dǎo)致沒有調(diào)用到QSharedMemory的析構(gòu)函數(shù)的話,共享內(nèi)存對象不會被內(nèi)核銷毀。
以上兩句是看QT文檔所得,英文水平有限,不一定正確,請驗證
setNativeKey這種函數(shù),會導(dǎo)致lock失敗,這意味著QT的共享機制被破壞了,所以還是不用了吧。
III. 演示代碼
本文版權(quán)歸黑馬程序員C/C++學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!
作者:黑馬程序員C/C++培訓(xùn)學(xué)院
首發(fā):http://c.itheima.com/
【AI設(shè)計】北京143期畢業(yè)僅36天,全員拿下高薪offer!黑馬AI設(shè)計連續(xù)6期100%高薪就業(yè)
2025-09-19【跨境電商運營】深圳跨境電商運營畢業(yè)22個工作日,就業(yè)率91%+,最高薪資達13500元
2025-09-19【AI運維】鄭州運維1期就業(yè)班,畢業(yè)14個工作日,班級93%同學(xué)已拿到Offer, 一線均薪資 1W+
2025-09-19【AI鴻蒙開發(fā)】上海校區(qū)AI鴻蒙開發(fā)4期5期,距離畢業(yè)21天,就業(yè)率91%,平均薪資14046元
2025-09-19【AI大模型開發(fā)-Python】畢業(yè)33個工作日,就業(yè)率已達到94.55%,班均薪資20763元
2025-09-19【AI智能應(yīng)用開發(fā)-Java】畢業(yè)當(dāng)天offer率91%,薪資1W+占比54.2%,班級均薪12k+
2025-09-19