Qt隐式共享
Qt隱式共享
- Qt隱式共享
- 概述
- 詳細(xì)的隱式共享
- class清單
Qt隱式共享
Qt中的許多C ++類都使用隱式數(shù)據(jù)共享來最大程度地利用資源并最大程度地減少?gòu)?fù)制。當(dāng)作為參數(shù)傳遞,因?yàn)橹挥幸粋€(gè)指針數(shù)據(jù)傳遞周圍隱含共享類是既安全又有效,并且數(shù)據(jù)被復(fù)制只有當(dāng)一個(gè)函數(shù)寫它,即寫入時(shí)復(fù)制。
概述
共享類由指向共享數(shù)據(jù)塊的指針組成,該數(shù)據(jù)塊包含引用計(jì)數(shù)和數(shù)據(jù)。
創(chuàng)建共享庫(kù)時(shí),它將引用計(jì)數(shù)設(shè)置為1。每當(dāng)新對(duì)象引用共享數(shù)據(jù)時(shí),引用計(jì)數(shù)就增加,而當(dāng)對(duì)象取消引用共享數(shù)據(jù)時(shí),引用計(jì)數(shù)就減少。當(dāng)參考計(jì)數(shù)變?yōu)榱銜r(shí),共享數(shù)據(jù)將被刪除。
處理共享庫(kù)時(shí),有兩種復(fù)制對(duì)象的方法。我們通常談?wù)撋顚雍蜏\層副本。深層復(fù)制意味著復(fù)制對(duì)象。淺表副本是參考副本,即只是指向共享數(shù)據(jù)塊的指針。就內(nèi)存和CPU而言,制作深層副本可能會(huì)很昂貴。進(jìn)行淺表復(fù)制非常快,因?yàn)樗鼉H涉及設(shè)置指針和增加引用計(jì)數(shù)。
隱式共享對(duì)象的對(duì)象分配(使用operator =())是使用淺表副本實(shí)現(xiàn)的。
共享的好處是程序不需要不必要地復(fù)制數(shù)據(jù),從而減少了內(nèi)存使用量并減少了數(shù)據(jù)復(fù)制。可以輕松分配對(duì)象,將其作為函數(shù)參數(shù)發(fā)送以及從函數(shù)返回。
隱式共享主要發(fā)生在幕后。程序員很少需要擔(dān)心它。
在多線程應(yīng)用程序中,發(fā)生隱式共享
在實(shí)現(xiàn)自己的隱式共享類時(shí)
總結(jié)
- 上一篇: 白银t+d交易规则
- 下一篇: Qt动画框架Animation Fram