用户单例的实现
一、目的:
1、读取服务器回包,存储用户信息
2、解决丢包问题,在写线程中,往外write的同时,也存在这个单例内,单例里写一个协议头变量HEAD;
3、读线程中,读取用户数据后存在单例内,如果读到的回包内的type不等于我发出的type的值,就说明数据错误,再调用写线程,写单例内之前存好的HEAD
二、实现方法:
通信协议头长这样,所以单例里就写两个HEAD 一个是sendHEAD,一个是readHEAD,在读线程里判断,单例内这两个HEAD的type是否一致,如果不一致,就调用写线程去重发。
读写线程都需要操作这个用户单例,为了避免出现数据冲突问题,在操作的过程里,需要加入信号量锁 QT里是QSemaphore类
信号量: