多线程
我真的好奇,为什么实现pthread_mutex_lock的所有源代码都不会按照定义测试它的返回值:
pthread的文档
即使在书中,例子也不测试锁是否出错,代码只是做锁。
我错过了什么原因让它不被测试?
基本上,唯一“有趣”的错误是EINVAL
,它在大多数程序中只会因为内存损坏而发生,或者正如我从自己痛苦的经历中得知的那样,在程序关闭之后,析构函数已经销毁了一些互斥体。 我看到它的方式,对这种错误的唯一合理的反应是放弃程序,另一方面,如果错误发生的确是因为程序已经关闭而非常不方便。 当然,这是可以解决的,但这并不是那么简单,对于大多数程序来说没有太多的收获。
首先,我认为“所有源代码”和“从不测试”都太强大了。 我认为“一些”和“经常”会更准确。
在书中,为了清楚说明,经常省略错误检查代码。
至于现实世界的代码,我想答案必须是认为失败的可能性非常低。 这是否是一个好的假设值得商榷。
链接地址: http://www.djcxy.com/p/52913.html上一篇: multithreading