c – 如何在if-else梯形图中为特定条件设置互斥锁和解锁?
发布时间:2020-12-16 09:58:24 所属栏目:百科 来源:网络整理
导读:在线程中运行的类的成员函数中,我想保护对if-else梯形图中某些共享资源的访问,如下所示. if (condition){}// the mutex lock should be hereelse if (specific condition)// the mutex unlock should be here{}else ... 我希望以上述方式进行锁定,因为除了访
在线程中运行的类的成员函数中,我想保护对if-else梯形图中某些共享资源的访问,如下所示.
if (condition) {} // the mutex lock should be here else if (specific condition) // the mutex unlock should be here {} else ... 我希望以上述方式进行锁定,因为除了访问用于评估特定条件的共享资源之外,我不在任何地方访问/使用它,并且每个if / else块运行的所有操作都很长,我不想阻止访问该共享资源的其他线程. 我知道范围锁和互斥锁,但我想不出它可以在这种情况下使用的方式.问题是: 使用互斥锁定/解锁语句或甚至使用范围锁定如何在if-else梯形图中的特定条件下实现锁定/解锁? 此外,我希望从C(可能是03)的角度来看这个解决方案(或者那个问题不是来自Java这样具有隐式互斥支持和同步块的语言).在此先感谢所有的帮助. 解决方法
在执行锁定的函数中包含条件:
bool condition() { mutex_lock(); bool result = ... mutex_unlock(); return result; } 然后在代码中使用 if () { ... } else if (condition(...)) { ... } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |