免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2296 | 回复: 2
打印 上一主题 下一主题

多线程互斥访问问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-02-26 20:18 |只看该作者 |倒序浏览
各位朋友:

    我最近写了一个多线程程序(其实只有2个线程)。这两个线程都要修改一个全局数组,这个全局数组的定义如下:
    struct entry *rt[1024];
其中struct entry是一个结构体,定义如下:
    struct entry{
             int key;
             int data; // 将要被线程修改的部分
      };
      大家应该看得很清楚,其实每个线程需要修改的是数组每一项所指向的链表中某个struct entry结构体中的data段,而这也正是我想实现互斥访问的地方;我不想让互斥的“粒度”太大,比如说,如果一个线程正在写全局数组rt中某个链表的某个struct entry,那么还是允许另外一个线程修改rt数组,只要修改的不是同一个struct entry就可以。

    可是我不知道怎么实现这个功能,望高手指教一二,谢谢!

论坛徽章:
0
2 [报告]
发表于 2006-02-26 20:26 |只看该作者

论坛徽章:
0
3 [报告]
发表于 2006-03-01 16:23 |只看该作者
在entry中定义一个mutex,每次对entry进行写操作时先lock mutex,写完再unlock mutex
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP