<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                因為 C 語言并不具備自動的內存回收功能, 所以 Redis 在自己的對象系統中構建了一個引用計數([reference counting](http://en.wikipedia.org/wiki/Reference_counting))技術實現的內存回收機制, 通過這一機制, 程序可以通過跟蹤對象的引用計數信息, 在適當的時候自動釋放對象并進行內存回收。 每個對象的引用計數信息由?`redisObject`?結構的?`refcount`?屬性記錄: ~~~ typedef struct redisObject { // ... // 引用計數 int refcount; // ... } robj; ~~~ 對象的引用計數信息會隨著對象的使用狀態而不斷變化: * 在創建一個新對象時, 引用計數的值會被初始化為?`1`?; * 當對象被一個新程序使用時, 它的引用計數值會被增一; * 當對象不再被一個程序使用時, 它的引用計數值會被減一; * 當對象的引用計數值變為?`0`?時, 對象所占用的內存會被釋放。 表 8-12 列出了修改對象引用計數的 API , 這些 API 分別用于增加、減少、重置對象的引用計數。 * * * 表 8-12 修改對象引用計數的 API | 函數 | 作用 | | --- | --- | | `incrRefCount` | 將對象的引用計數值增一。 | | `decrRefCount` | 將對象的引用計數值減一, 當對象的引用計數值等于?`0`?時, 釋放對象。 | | `resetRefCount` | 將對象的引用計數值設置為?`0`?, 但并不釋放對象, 這個函數通常在需要重新設置對象的引用計數值時使用。 | * * * 對象的整個生命周期可以劃分為創建對象、操作對象、釋放對象三個階段。 作為例子, 以下代碼展示了一個字符串對象從創建到釋放的整個過程: ~~~ // 創建一個字符串對象 s ,對象的引用計數為 1 robj *s = createStringObject(...) // 對象 s 執行各種操作 ... // 將對象 s 的引用計數減一,使得對象的引用計數變為 0 // 導致對象 s 被釋放 decrRefCount(s) ~~~ 其他不同類型的對象也會經歷類似的過程。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看