社区
C++ 语言
帖子详情
关于共享和互斥
52huier
2004-08-27 04:55:35
今天我想了想共享和互斥,越想越乱,转不出来了。
到底什么时候必须实现互斥?难道使用任何公共资源都要互斥使用?比如我打开一个文件?
还有,我两个程序同时操作数据库里的一个表呢?这时候数据库是否提供一些互斥的支持呢?
那位牛人启发我一下????
...全文
185
8
打赏
收藏
关于共享和互斥
今天我想了想共享和互斥,越想越乱,转不出来了。 到底什么时候必须实现互斥?难道使用任何公共资源都要互斥使用?比如我打开一个文件? 还有,我两个程序同时操作数据库里的一个表呢?这时候数据库是否提供一些互斥的支持呢? 那位牛人启发我一下????
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
产品老唐
2004-08-27
打赏
举报
回复
SQL提供共享锁和互斥锁,可以利用
52huier
2004-08-27
打赏
举报
回复
不知道你所指的“现实”是啥意思哦。你编过很多多进程或者多线程的程序吗?
许多时候,你用了锁,但你自己未必知道,比如你调用一个系统API,那里边很可能就有锁操作。
哦,我没编过多少多线程的程序,这不刚接触就有问题了嘛,嘿嘿,那多个程序同时运行也应该算多进程吧?我就是指这种情况。
我就是搞不清,这种互斥哪些是系统已经实现了,哪些要自己实现。。。。。
52huier
2004-08-27
打赏
举报
回复
可是不能保证别的程序中间修改呀——那就不是只读资源。ROM/BIOS可以被看成只读资源。
那不就是说我平时写一个文件都要加个锁,防止别人的程序不知道我在写。我平时也没见人这么写呀。。。。
晨星
2004-08-27
打赏
举报
回复
“可现实中我没见到这么多使用锁的例子呀。”
不知道你所指的“现实”是啥意思哦。你编过很多多进程或者多线程的程序吗?
许多时候,你用了锁,但你自己未必知道,比如你调用一个系统API,那里边很可能就有锁操作。
晨星
2004-08-27
打赏
举报
回复
可是不能保证别的程序中间修改呀——那就不是只读资源。ROM/BIOS可以被看成只读资源。
数据库的支持是怎样的?
通常是透明等待,等另外一个任务完成了再进行。
sandrowjw
2004-08-27
打赏
举报
回复
数据库的支持是怎样的?如果操作的表被加锁,程序是“透明“地等待呢,还是返回错误呢???
------------------------------------------------------------------------------
会等到饿死
虽然是只读,可是不能保证别的程序中间修改呀,也许后者应该加锁,可现实中我没见到这么多使用锁的例子呀。。。
-----------------------------
因为确定不能修改了才会不加锁
52huier
2004-08-27
打赏
举报
回复
首先,谢谢楼上的
不过还有点问题。。。。
不一定,比如只读资源。
虽然是只读,可是不能保证别的程序中间修改呀,也许后者应该加锁,可现实中我没见到这么多使用锁的例子呀。。。
数据库的支持是怎样的?如果操作的表被加锁,程序是“透明“地等待呢,还是返回错误呢???
晨星
2004-08-27
打赏
举报
回复
难道使用任何公共资源都要互斥使用?
不一定,比如只读资源。
比如我打开一个文件?
就看应用程序本身的意图了。
这时候数据库是否提供一些互斥的支持呢?
当然会,否则两个进程同时改,很可能就改乱套了。
到底什么时候必须实现互斥?
说简单点,只要不互斥可能造成混乱甚至灾难的场合都需要互斥。
互相独立进程间
共享
内存
互斥
访问的解决办法
前提:两个进程互相独立,访问同一片
共享
内存存在问题:1、如何避免两个进程同时访问
共享
内存(一旦两个进程同时访问一个临界区,后果是程序崩溃)2、如果使用
互斥
锁,如何让两个进程拿到同一个
互斥
锁解决办法:针对...
共享
内存 同步、
互斥
共享
内存没有提供
互斥
机制,需要程序员自己实现。1.对于多个进程
共享
的
共享
内存来说,惟一可靠的
互斥
机制 就是带SEM_UNDO的system V信号量。原因: 某一个进程在持有锁期间意外退出,所持有的锁还没有来得及释放,...
共享
内存+
互斥
量实现 Linux 进程间通信
一、
共享
内存简介 ...
共享
内存并未提供进程同步机制,使用
共享
内存完成进程间通信时,需要借助
互斥
量或者信号量来完成进程的同步。这里说一下
互斥
量与信号量的区别。
互斥
量用于线程的
互斥
,信号量用...
C语言实现应用 Peterson 算法原理设计实现
共享
内存
互斥
应用 Peterson 算法原理设计实现
共享
内存
互斥
。 1. 相关知识点:Peterson算法 简单介绍: Peterson算法是一种用于
互斥
的并发编程算法,该算法允许两个或多个进程
共享
一次使用的资源而不会发生冲突,仅使用
共享
内存...
Linux下POSIX
共享
内存和POSIX
互斥
锁的使用
int shm_fd;void *ptr;// 初始化
共享
内存和
互斥
锁// 创建或打开
共享
内存对象// 设置
共享
内存的大小// 映射
共享
内存到进程地址空间// 初始化
互斥
锁= 0) {// 清理资源。
C++ 语言
65,209
社区成员
250,518
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章