首页 > 代码库 > Qt 多线程和网络编程学习
Qt 多线程和网络编程学习
一,Qt多线程类学习
QThread类,开始一个新的线程就是开始执行重新实现QThread::run(),run()是默认现实调用exec(),QThread::start()开始线程的执行,run()函数是在start()函数调用之后开始执行
QMutex类,互斥量/互斥锁,加锁解锁,原子操作
QWaitCondition类,一个线程在一定条件下等待其它线程的唤醒,在此之前一直处于休眠期。QWaitCondition::wakeOne()随机唤醒一个等待的线程,QWaitCondition::wakeAll()唤醒所有。
QReadWriteLock提供一个可以同时读写操作的锁,读写锁,读时共享写时独占,写锁优先级比读锁高
QSemaphore 提供一个整型信号,是互斥量的泛华,即规定只能多少个线程进行操作
Qt高级线程类:QtConcurrent类开启线程事务,QFutureWatcher类观测线程状态,QFuture类线程启动类
QMutex,QReadWriteLock,QSemaphore,QWaitCondition提供线程同步的手段,使用线程主要是为了并发执行。
二,Qt中的网络编程类学习
QTcpSocket类 可靠的流传输
QUdpSocket类 不可靠大报文传输 bind(),writeDatagram()写报文,readDatagram()读报文,joinMulticastGroup()广播(join/leave),hasPendingDatagrams()如果至少接到一个报文返回true
QAbstractSocket类,connectToHost(),state(),waitForConnected(),waitForDisconnect(),readData(),writeData()
QTcpServer类
QLocalServer类 listen(),serverName(),close()
QLocalSocket类 serverName(),connectToserver(),disconnectFromServer(),state(),waitForConnect(),waitForDisconnect()
QHostaddress类 setAddress(),toIPv4Address(),clear()
QHostInfo类,lookupHost(),abortlookupHost(),fromName()通过名字找到IP,localHostName()
Qt 多线程和网络编程学习