队列2有消息a和b,即: a<->b,a在队首,b在队尾
规定从队首取消息,从队尾放入消息
假设这时线程1处理完自己队列1里的消息后,想从线程2拥有的队列2队尾取出消息b进行处理。
同时刻,线程2往自己队列2中放入消息c。
这时候会发生一个竞争,如果这时不加锁控制会发生以下情况:
线程1做取消息b操作,它需要将队列2中在消息b前面的消息a的next指针指向null。
线程2操作完成后,queue2的消息如下,其中 <->是指双向指针:
a<->b<->c
这时线程1接着将消息b的next指针指向null。
这样queue2中的消息变成:
a<->b (b指向null)
最终发现线程2将消息c放入队列2队尾的操作丢失。 <script type="text/java script">
- <script type="text/java script">BAIDU_CLB_fillSlot("771048");
- 点击复制链接 与好友分享! 回本站首页 <script> function copyToClipBoard(){ var clipBoardContent=document.title + '\r\n' + document.location; clipBoardContent+='\r\n'; window.clipboardData.setData("Text",clipBoardContent); alert("恭喜您!复制成功"); }
- 您对本文章有什么意见或着疑问吗?请到 论坛讨论您的关注和建议是我们前行的参考和动力??
<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"24"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];
- 上一篇: cloudflare的新waf,用Lua实现的
- 下一篇: BZOJ 1845三角形面积并
- 相关文章
C++中的优先级队列使用范例
C++实现链队列的基础操作
- <script type="text/java script">BAIDU_CLB_fillSlot("182716");
- <script type="text/java script">BAIDU_CLB_fillSlot("517916");
- 图文推荐
- <script type="text/java script">BAIDU_CLB_fillSlot("771057");
- 排行
- 热门
- 68 | poj1002的java实现
- 54 | QT 等待对话框/进度--
- 47 | pthread 简要使用指南(一) pthrea
- 47 | 变量和函数的定义和声明
- 45 | Android在编译和反编译时出现error:
- 44 | libprotobuf ERROR google/protobuf
- 43 | 二叉树
- 43 | 重载
<script type="text/java script">BAIDU_CLB_fillSlot("406189");
<script type="text/java script">BAIDU_CLB_fillSlot("703749");
-
<iframe frameborder="0" name="Iframe1" src="http://www.2cto.com/bbsdy/index.html" width="100%" height="200"> 您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。
<script type="text/java script">BAIDU_CLB_fillSlot("182692");
- 文章
- 下载
- 读书
- ?? Win2000下关闭无用端口
- ?? 禁止非法用户登录综合设置 [win9x篇]
- ?? 关上可恶的后门――消除NetBIOS隐患
- ?? 网络入侵检测系统
- ?? 潜伏在Windows默认设置中的陷井
- ?? 调制解调




