社区
Linux/Unix社区
帖子详情
关于共享内存的问题
AntonlioX
2006-08-26 09:26:53
使用POSIX的shm_open,shm_unlink
1 如何保证一个进程先创建并初始化一块共享内存后,另一个进程才访问能这块共享内存。
2 如果一个进程执行了shm_unlink后,是不是这块共享内存其他进程正在使用的,就被释放了?
如果不是,那么如果有个新的进程使用同样的共享内存名字来创建新的共享内存,是不是创建的是新的一个共享内存,与前面创建的共享内存不是同一块?
谢谢
...全文
511
11
打赏
收藏
关于共享内存的问题
使用POSIX的shm_open,shm_unlink 1 如何保证一个进程先创建并初始化一块共享内存后,另一个进程才访问能这块共享内存。 2 如果一个进程执行了shm_unlink后,是不是这块共享内存其他进程正在使用的,就被释放了? 如果不是,那么如果有个新的进程使用同样的共享内存名字来创建新的共享内存,是不是创建的是新的一个共享内存,与前面创建的共享内存不是同一块? 谢谢
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
isnowran
2006-09-04
打赏
举报
回复
shm_open
1. mkdir dir
2. mount with tmpfs
3. create a fiel in this dir
3. mmap this file
struggleyb
2006-08-29
打赏
举报
回复
按照linux的习惯,unlink不应该是简单的删掉相应的文件,而应该是减少文件使用计数,直到使用计数为0时,再删掉文件
nuaa3
2006-08-29
打赏
举报
回复
建议不要使用shm_open ??
那用什么创建
isnowran
2006-08-28
打赏
举报
回复
shm_open =
1. create file in /dev/shm
2. mmap /dev/shm/file
shm_unlink =
1. remove /dev/shm/file
建议不要使用shm_open,当你chroot后,创建会失败,照着上述步骤,手工实现比较灵活
nuaa3
2006-08-28
打赏
举报
回复
帮你顶
AntonlioX
2006-08-26
打赏
举报
回复
up
AntonlioX
2006-08-26
打赏
举报
回复
请大家指点一下
AntonlioX
2006-08-26
打赏
举报
回复
up
AntonlioX
2006-08-26
打赏
举报
回复
我说的清楚点:
如果一个进程执行了shm_unlink后,是不是就释放了这块共享内存, 其他进程即使正在使用这个共享内存,也要被释放?
如果不是,而只是把/dev/shm/的对应某个文件给删掉 , 那么如果有个新的进程使用同样的共享内存名字来创建新的共享内存,是不是创建的是新的一个共享内存,与前面创建的共享内存不是同一块?
AntonlioX
2006-08-26
打赏
举报
回复
shm_unlink 到底实现了什么功能? 我感觉它只是简单的把 在/dev/shm/的某个文件给删掉了
fytzzh
2006-08-26
打赏
举报
回复
加锁. 修改共享的时候就要做互斥.
在shm_unlink的时候加锁这样就能保证没有其他线程正在使用。因为同一时刻只有一个线程才能加锁成功.其他线程都会等待.
异步操作 Promise,then/catch,async/await
Promise主要处理异步操作,确认异步操作完成再执行后面的语句。 js通常是单线程的,常用的异步操作有: ajax请求 io操作(文件读取) 定时器 异步操作的原理:执行到需要的异步操作,会开始执行异步操作,不等执行完直接开始执行操作后面的语句,等语句执行完全再去看异步操作是否执行完成,完成就返回完成,没有就继续执行异步。 常用的异步请求操作 const promise = ne...
前端同步异步-setTimeout-Promise-async-await
是JavaScript中的一个定时器函数,主要作用是在指定的延迟时间(以毫秒为单位)后执行一次给定的函数或代码段。Promise在JavaScript中用于处理异步操作的结果。它是一个对象,用于包装一个还未完成的异步操作,可以在操作完成后进行相应的结果处理。async/await是JavaScript中处理一步操作的一种更简洁、更易于理解的语法糖,它是基于Promise构建的。
微信小程序 ———— 异步请求中使用async/await实现同步请求
在小程序开发中,大多数都是在打开小程序在app.js中获取用户信息的,但是如果我们进到主页获取内容需要用到用户信息 比如用户id,那我们要怎么保证在进到主页时已经拿到了用户信息呢? 最开始做小程序的时候 我用过各种笨方法,比如在主页写了个定时器,判断用户信息获取到了在停止定时器。虽然能解决,但是总觉得不爽。 后来发现了 Promise 配合 async/await 来实现异步中达到同步的效果...
异步执行转化为同步执行的方法
异步转化为同步的基本思路
一个很奇怪的ajax同步方案---回调+循环定时器
一个很奇怪的ajax同步方案------回调+循环定时器 ajax请求回调很多,使用setInterval监听,记得一定要清除 let result = {}; //嵌套的连续ajax请求 function myAjax(){ let resObj = {}; //success或error回调里判断并操作返回值后执行下一步请求 //嵌套太深,没有使用return $ajax(.....
Linux/Unix社区
23,224
社区成员
74,536
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章