免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: 傻旦
打印 上一主题 下一主题

[函数] pthread_mutex_t 是否需要pthread_mutex_init初始化? [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
11 [报告]
发表于 2008-04-03 23:11 |只看该作者
比如你和同事合作搞一个项目,
人家给你一套接口,让你先 init,然后再做别的,
你非要跟人家问为什么要 init,如果不 init 会有什么后果、init 到底做了什么,
那你就不是一个好员工。

这些东西不是你使用它的时候应该考虑的,而是实现它的时候应该考虑的。
换句话说,如果你接手了那位同事的代码,那你需要看看。
再或者你把本质工作已经做好了,希望对整个项目有一个更深入的认识,
那么你可以看看。

[ 本帖最后由 flw 于 2008-4-3 23:12 编辑 ]

论坛徽章:
0
12 [报告]
发表于 2008-04-03 23:19 |只看该作者
支持flw,写程序时依赖细节除了自讨苦吃,没有任何好处.

论坛徽章:
0
13 [报告]
发表于 2009-05-26 18:52 |只看该作者
楼上不懂就说不懂,别新手新手的,有意思吗?

论坛徽章:
0
14 [报告]
发表于 2009-05-26 19:01 |只看该作者
:mrgreen

[ 本帖最后由 bsdc 于 2009-5-26 19:23 编辑 ]

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
15 [报告]
发表于 2009-05-26 19:39 |只看该作者
原帖由 flw 于 2008-4-3 22:41 发表
不光是对新人,对老人,对自己,我都是这个态度。
我觉得,很多人都不够重视“文档”、“接口”、“标准”、“规范”这些东西,
我是学机械出身的,我觉得一定要重视这些。
人家都说了必须得 init,你不去 init,还问这样会有什么后果,那不是吃饱了没事找事嘛。


顶!

文档说需要init, 就是需要init。这是规矩。 要用mutex就要遵守的规矩。即使它什么都不做

也许一些平台下, mutex可以被"合理的初始化", init只是一个空函数。 如果某些其他平台下的mutex实现,确实需要init呢?
在那些mutex确实需要init的平台下, 如果在使用pthread的代码里面不留下这么一个init的插入点, 实现pthread库的人会很头大 ……
必须在每一次使用mutex的时候,检查其是否已经被初始化, 如果不,init"一次"。
所以,init函数是一个“完成初始化语意"的十分合理的"插入点”。

而且这样的pthread库确实是存在的。 pthread-win32就是。
在win32下使用critical_section实现pthread_mutex_t。 critical_section就确实需要init。
如果使用pthread-win32的人,不使用init函数 ……  那叫实现pthread-win32的人怎么活……



在确实不需要init的平台上, 是否也应该去掉init?
简单的说, 去掉能获得什么好处??????  保留会有什么坏处????
有另外一个相似的函数(宏)也有类似的问题—— va_end
观点在这里:《可变长参数列表误区与陷阱——va_end是必须的吗?》http://www.cppblog.com/ownwaterl ... _end_necessary.html

[ 本帖最后由 OwnWaterloo 于 2009-5-26 19:40 编辑 ]

论坛徽章:
1
申猴
日期:2014-02-11 14:50:31
16 [报告]
发表于 2009-05-26 21:23 |只看该作者
了解其中的原理又何妨? 只要自己有精力,去研究一下又有什么不对。。。。。。。

论坛徽章:
0
17 [报告]
发表于 2009-05-27 00:09 |只看该作者
遵守规范是必须的,研究细节也是值得肯定的

论坛徽章:
0
18 [报告]
发表于 2011-08-06 16:45 |只看该作者

O(∩_∩)O~
有争论才有进步!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP