码迷,mamicode.com
首页 > 其他好文 > 详细

用错了锁的后果(2种情况:前一种停滞运行,后一种直接崩溃)

时间:2016-01-15 01:05:47      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:

1. 该解锁不解锁,比如在这个return之前,忘了解锁:

bool DBTool::GetData()
{

    m_loglock.lockForRead(); 
    QSqlQuery sql_query(m_database); 
    if(!sql_query.exec(strSQL))
    {
        qDebug()<<sql_query.lastError();
        //  m_loglock.unlock(); // 忘了
        return false;
    }
    else
    {
        // do something
    }
    m_loglock.unlock();

    return true;
}

忘记解锁的后果是,别处需要锁的时候,程序就永远停滞运行了。。。

2. 不该解锁的时候进行解锁

程序立刻崩溃,毫无商量余地

用错了锁的后果(2种情况:前一种停滞运行,后一种直接崩溃)

标签:

原文地址:http://www.cnblogs.com/findumars/p/5132066.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!