qt相关心得(2)

继上篇qt相关心得(1)-CSDN博客,这里把剩下的总结一下


八. qt里面的相关锁

网络服务这种少不得是并发的,多线程的,有些数据需要保证隔离性,这个就需要加锁.

(1) QMutex 

可以用这个互斥变量,有点像Java里面的synchronized,修饰代码块.

先定义  QMutex m_mutex;

在需要加锁的前后加上 m_mutex.lock();m_mutex.unlock();

(2)QReadWriteLock 读写锁

 这个就是读写锁,原理就不说了,这里使用有两种方法,

a.定义QReadWriteLock m_rwLock;

  需要加读锁的地方加上m_rwLock.lockForRead(); m_rwLock.unlock();

 需要在加写锁的地方加上m_rwLock.lockForWrite(); m_rwLock.unlock();

b.这个是我使用的 先定义mutable  QReadWriteLock rwlock;

  需要加读锁的地方 QReadLocker locker(&rwlock);
  需要加写锁的地方 QWriteLocker locker(&rwlock);

QWriteLocker(和QReadLocker)的目的是简化QReadWriteLock的锁定和解锁。锁定和解锁语句或异常处理代码容易出错,难以调试。在这种情况下,可以使用QWriteLocker来确保锁的状态总是定义良好的。 下面的写法 等价于上面的写法,就是保证锁的状态良好.

九,单例模式

 这个其实跟java的单例模式差不多,这里需要强调的是如果是获取单例模式的指针,这个是不需要释放的.

(1)先定义

    public:  static ServiceConfig* getInstance(); 

   private : ServiceConfig();
    static ServiceConfig*instance;

(2)cpp实现方法

十.配置文件读取 

很多时候,需要在外面配置服务名,服务端口,ip和日志等等,需要解析外面的文件.

(1) 先定义配置文件路径

    

(2) 指定文件的格式

(3)我用的ini,可以按一个个键值读取,当读取的配置项不存在时,读取后面的默认值

  

这里先总结到这里,后续重要的,我再更新更新

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值