线程使用之互斥量

mutex.h

#include <QThread>

class Thread_Mutex : public QThread
{
public:
    Thread_Mutex();

    void setMessage(QString msg);

protected:
    void run();

private:
    QString message;
    static QMutex mutex;
};

mutex.cpp

#include "mutex.h"


#include <QDebug>


QMutex Thread_Mutex::mutex;//初始化静态成员

Thread_Mutex::Thread_Mutex()
{
//    qDebug() << "mutex:" << mutex;
}

void Thread_Mutex::run()
{
    //while(1)
    //for(;;)
    forever//死循环
    //Qt中的,非标准C++标准库中的保留字
    {
        mutex.lock();//互斥量上锁
        qDebug()<<message;
        qDebug()<<message+message;
        mutex.unlock();//互斥量解锁
        sleep(2);
    }
}

void Thread_Mutex::setMessage(QString msg)
{
    message = msg;
}

main.cpp


#include <QThread>

#include "mutex.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    Thread_Mutex thread_MutexA;
    thread_MutexA.setMessage("A");

    Thread_Mutex thread_MutexB;
    thread_MutexB.setMessage("B");

    thread_MutexA.start();
    thread_MutexB.start();

    return a.exec();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值