社区
数据结构与算法
帖子详情
临界资源加锁的问题
pingzilao
2012-03-28 09:34:41
有多个线程操作临界资源i,若所有线程只去读取i,则不需要加锁;若有2个以上的线程写i(例如 i++ ,i--, i=5等),则对i操作需要加锁;若只有一个线程写i,其它的线程读i,那需不需要加锁啊???
...全文
320
4
打赏
收藏
临界资源加锁的问题
有多个线程操作临界资源i,若所有线程只去读取i,则不需要加锁;若有2个以上的线程写i(例如 i++ ,i--, i=5等),则对i操作需要加锁;若只有一个线程写i,其它的线程读i,那需不需要加锁啊???
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ncist_jianeng
2012-03-29
打赏
举报
回复
不加锁应该会出现问题的吧。。比如一个读进程读取了一个数,然后写进程将这个数改了,读进程再读的时候就和之前的值不一样了。。。。
NeedHelper
2012-03-28
打赏
举报
回复
要加读锁。
昵称很不好取
2012-03-28
打赏
举报
回复
需要加锁,尤其是在多核环境里,如果读线程比较多而写线程比较少,可以试试读写锁,比一般锁性能要好
yyfhz
2012-03-28
打赏
举报
回复
为了防止脏读,只要有写进程,就需要加锁。
同样的,当有进程在读的时候,新的写进程也需要等待。
具体的可参考数据库中的共享锁和独占锁。
VisualStudio多线程共享资源
加锁
WindowsAPI封装类
critical section是每个线程中访问
临界资源
的那段代码,不论是硬件
临界资源
,还是软件
临界资源
,多个线程必须互斥地对它进行访问。
Java并发之无锁.docx
对于锁,如果有多个线程同事访问一个
临界资源
,宁可牺牲性能让线程等待,也不会让一个线程不
加锁
访问
临界资源
。对于无锁,它会假定对资源的访问是没有冲突的。也就是多个线程对
临界资源
的访问是没有冲突的。既然没有...
Python多线程实现同步的四种方式
临界资源
即那些一次只能被一个线程访问的资源,典型例子就是打印机,它一次只能被一个程序用来执行打印功能,因为不能多个线程同时操作,而访问这部分资源的代码通常称之为临界区。 锁机制 threading的Lock类,用该...
基于C#实现的多生产者多消费者同步
问题
实例
主要介绍了基于C#实现的多生产者多消费者同步
问题
,包括了
加锁
与释放锁,以及对应
临界资源
的访问。是比较实用的技巧,需要的朋友可以参考下
Linux 并发操作
临界资源
上锁
在多线程对同一块
临界资源
进行操作时,需要在线程运行时上锁,保证本次线程操作
临界资源
时,仅有次一个线程进行操作,避免操作混乱错误更改
临界资源
。例如当多线程同时对一个变量i执行i++时,无法保证全都是如图的...
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章