为何要使用多线程
任何收发两端速度不一致的通讯,都需要在它们之间使用一个足够大的FIFO缓冲区。
对任何FIFO缓冲区的使用,都需要仔细考虑接收端接收时超时无数据和发送端发送时FIFO缓冲区已满这两种情况下该如何做。
这些
经典代码还包括以下必须考虑的因素:
◆跨Windows和Linux平台
◆多线程锁
◆多线程日志
◆日志文件占用的磁盘空间的可控性。
◆日志中的时间包括毫秒
◆传输的数据对应的每个字节到底的英文几
◆如何退出多线程程序
什么情况下不用线程
启动其它线程很容易,但很难保证所有共享的数据保持一致。问题通常很难找到,因为它们可能在某个时候仅显示一次或仅在某种硬件配置下出现。在创建线程解决某些问题之前,应予以考虑可能的替代方案。
线程基础
线程与并行处理任务息息相关,就像进程一样。当前CPU设计的趋势是拥有多核。一个典型的单线程应用程序只能利用一个核。但是,一个多线程程序可被分配给多个核,使得程序以一种完全并行的方式运行。这样,将一个任务分配给多个线程使得程序在多核CPU计算机上的运行速度比传统的单核CPU计算机上的运行速度快很多。
每个程序启动后就会拥有一个线程。该线程称为“主线程”(在Qt应用程序中也叫“GUI线程”)。Qt GUI必须运行在此线程上。所有的部件和几个相关的类,例如:QPixmap,不能工作于次线程中。次线程通常称为“工作者线程”,因为它主要处理从主线程中卸下的一些工作。
QThread继承自QObject
每个线程都有它自己的事件循环。初始线程通过QCoreApplication::exec()来