数据库内存共享实现原理是什么

技术数据库内存共享实现原理是什么这篇文章主要讲解了“数据库内存共享实现原理是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“数据库内存共享实现原理是什么”吧!共享内存是

本文主要讲解“数据库内存共享的实现原理是什么”,文中讲解内容简单明了,易学易懂。请跟随边肖的思路,一起学习学习“数据库内存共享的实现原理是什么”。

共享内存是进程间通信的一种方式。PostgreSQL使用共享内存来缓存数据和各种数据结构。

下面是演示代码,逻辑很简单,参考代码自己注释。

/*

申请共享内存,父进程写一串字符,子进程读出。

*/

# includestdio.h

#包括ys/ipc.h

#包括ys/shm.h

#包括系统/类型. h

# includeunistd.h

# includestdlib.h

//1k共享内存。

#defineSHM_SIZE1024

#defineSHM_ID10086

intmain()

{

//共享内存id,子进程id。

intshmid,pid

//共享内存指针。

char * ptr=NULL

//申请共享内存。

shmid=shmget((key_t)SHM_ID,SHM_SIZE,IPC _ CREAT | 0600);

//将共享内存映射到进程地址空间。

ptr=(char*)shmat(shmid,0,0);

printf(' attachpointraddris % p \ n ',ptr);

ptr=' Thisissharedmemory!';

printf(' StStringof ParentProcess 3360% s \ n ',ptr);

if((pid=fork())==-1)

{

perror('forkprocesserror!');

退出(0);

}

elseif(!pid)

{

printf(' childprocesspidis :% d,Stringis % s \ n ',pid,ptr);

退出(0);

}else{

睡眠(1);

//Unmap。

shm dt(ptr);

//删除共享内存。

shmctl(shmid,IPC_RMID,0);

}

返回0;

}运行输出。

[pg12 @ localhostipc]$ gcc-STD=c11-of fork . c

infileincluded from fork . 36860 . 88888888861

/usr/include/sys/IPC . h :24: warn : # warn ' files using thisheadrmustogetappelledwith _ SVID _ SOURCE or _ XOPEN _ SOURCE '[-Wcpp]

#警告“文件使用thishheadermstatepiledwith _ SVID _ SOURCE or _ XOPEN _ SOURCE”

^

[pg12@localhostipc]$。/fork

attachpointraddris0x 7 f 61 FFB 6b 000

parentprocessings 3360的内存!

ChildProcessPIDis:0,StringisThisissharedmemory!

[pg12@localhostipc]$感谢阅读。以上就是“数据库内存共享的原理是什么”的内容。看完这篇文章,相信你对数据库内存共享的原理是什么的问题有了更深的理解。具体用法需要实践验证。在这里,边肖将为大家推送更多相关知识点的文章。欢迎关注!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/67435.html

(0)

相关推荐

  • 对Mysql的MVCC的理解是什么

    技术对Mysql的MVCC的理解是什么今天就跟大家聊聊有关对Mysql的MVCC的理解是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。MVCC(Mutil-V

    攻略 2021年10月25日
  • 手把手带你刷二叉树,第一期)

    技术手把手带你刷二叉树,第一期) 手把手带你刷二叉树(第一期)https://labuladong.gitee.io/algo/2/18/21/读完本文,你不仅学会了算法套路,还可以顺便去 LeetCo

    礼包 2021年11月12日
  • sql无效字符执行sql语句报错的解决方法

    技术sql无效字符执行sql语句报错的解决方法本篇文章为大家展示了sql无效字符执行sql语句报错的解决方法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。说起来惭愧,总是犯一些小

    攻略 2021年12月1日
  • pip 修改镜像源

    技术pip 修改镜像源 pip 修改镜像源背景
    由于pip初始镜像源下载某些包时非常慢,但我们可以对pip进行换源,将镜像源更改为国内源,这样效率能够提升很多。
    本文使用的是Linux Ubuntu18

    礼包 2021年12月1日
  • Linux WIFI 4G内核怎么配置

    技术Linux WIFI 4G内核怎么配置这篇文章主要介绍“Linux WIFI 4G内核怎么配置”,在日常操作中,相信很多人在Linux WIFI 4G内核怎么配置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操

    攻略 2021年11月30日
  • 完全理解icmp协议

    技术完全理解icmp协议 完全理解icmp协议1.ICMP出现的原因
    在IP通信中,经常有数据包到达不了对方的情况。原因是,在通信途中的某处的一个路由器由于不能处理所有的数据包,就将数据包一个一个丢弃了

    礼包 2021年11月12日