中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

數據庫內存共享實現原理是什么

發布時間:2021-11-04 13:46:20 來源:億速云 閱讀:242 作者:iii 欄目:關系型數據庫

這篇文章主要講解了“數據庫內存共享實現原理是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“數據庫內存共享實現原理是什么”吧!

共享內存是進程間通訊的一種方式,PostgreSQL使用共享內存緩存數據以及各種數據結構.
下面是演示代碼,邏輯很簡單,自行參考代碼注釋.

/*
申請一段共享內存,父進程寫入一串字符,子進程讀出。
*/
#include <stdio.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
//1k共享內存
#define SHM_SIZE 1024
#define SHM_ID 10086
int main()
{
    //共享內存id,子進程id
    int shmid, pid;
    //共享內存指針
    char *ptr = NULL;
    //申請共享內存
    shmid = shmget((key_t)SHM_ID, SHM_SIZE, IPC_CREAT | 0600);
    //映射共享內存到進程地址空間
    ptr = (char *)shmat(shmid, 0, 0);
    printf("Attach pointer addr is %p \n", ptr);
    ptr = "This is shared memory!";
    printf("The String of Parent Process is : %s \n", ptr);
    if((pid = fork()) == -1)
    {
        perror("fork process error!");
        exit(0);
    }
    else if(!pid)
    {
        printf("Child Process PID is : %d,String is %s \n", pid,ptr);
        exit(0);
    }else{
        sleep(1);
        //解除映射
        shmdt(ptr);
        //刪除共享內存
        shmctl(shmid, IPC_RMID, 0);
    }
    return 0;
}

運行輸出

[pg12@localhost ipc]$ gcc -std=c11 -o fork fork.c 
In file included from fork.c:7:0:
/usr/include/sys/ipc.h:24:3: warning: #warning "Files using this header must be compiled with _SVID_SOURCE or _XOPEN_SOURCE" [-Wcpp]
 # warning "Files using this header must be compiled with _SVID_SOURCE or _XOPEN_SOURCE"
   ^
[pg12@localhost ipc]$ ./fork 
Attach pointer addr is 0x7f61ffb6b000 
The String of Parent Process is : This is shared memory! 
Child Process PID is : 0,String is This is shared memory! 
[pg12@localhost ipc]$

感謝各位的閱讀,以上就是“數據庫內存共享實現原理是什么”的內容了,經過本文的學習后,相信大家對數據庫內存共享實現原理是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

个旧市| 普安县| 雷山县| 玛沁县| 东海县| 揭西县| 日喀则市| 稻城县| 潍坊市| 江油市| 双牌县| 铜陵市| 油尖旺区| 舞阳县| 南涧| 禹州市| 岑溪市| 天祝| 内江市| 大连市| 铜鼓县| 班戈县| 涞源县| 赣榆县| 磐安县| 日照市| 昌邑市| 灵丘县| 巴马| 措勤县| 黄平县| 正阳县| 都昌县| 伊金霍洛旗| 华阴市| 黄石市| 桦甸市| 普陀区| 昔阳县| 白河县| 怀远县|