首页 > 代码库 > 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 多线程和网络编程学习