一.多线程间的互斥
临界资源--每次只允许一个线程进行访问的资源线程间的互斥--多个线程在同一个时刻需要访问临界资源QMute类是一把线程锁,保证线程间的互斥--利用线程锁能够保证临界资源的安全性QMutex中的关键成员函数void lock()--当锁空闲时,获取锁并继续执行;当锁被获取时,阻塞并等待释放void unlock()--释放锁(同一把锁的获取和释放必须在同一线程中成对出现 )A.生产消费者问题1.有n个生成者同时制造产品,并把产品放入仓库中2.有m个消费者同时需要从仓库中取出产品所定的规则是--当仓库未满,任意生产者可以存入产品,当仓库未空,任意消费者可以取出产品代码示例
#include
#include
#include
#include
static QMutex g_mutex;//线程锁
static QString g_store;
class Producer : public QThread
{
protected:
void run()
{
int count = 0;
while(true)
{
g_mutex.lock();
g_store.append(QString::number((count++) % 10));
qDebug() |