c – 互斥锁和锁

c – 互斥锁和锁,第1张

概述这两个代码示例是否相同? Poco::ProcessHandle::PID ProcessRunner::processId() const{ Poco::ProcessHandle::PID pid = 0; mMutex.lock(); pid = mPID; mMutex.unlock(); return pid;} , Poco::Process 这两个代码示例是否相同?
Poco::ProcessHandle::PID ProcessRunner::processID() const{    Poco::ProcessHandle::PID pID = 0;    mMutex.lock();    pID = mPID;    mMutex.unlock();    return pID;}

,

Poco::ProcessHandle::PID ProcessRunner::processID() const{    Poco::ScopedLock<Poco::Mutex> lock(mMutex);    return mPID;}

>在第二个示例中:在返回值复制完成后锁定是否会超出范围?如果返回的对象有许多复制指令,这就很重要.
>如果你只想返回一个int值,是否需要锁定?或者是复制int的原子 *** 作?

解决方法 它们是等价的.在执行块的最后一行之后,本地不会超出范围.因此,在这种情况下,返回值复制是在锁的保护下进行的. 总结

以上是内存溢出为你收集整理的c – 互斥锁和锁全部内容,希望文章能够帮你解决c – 互斥锁和锁所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1258145.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-07
下一篇2022-06-07

发表评论

登录后才能评论

评论列表(0条)

    保存