qt中如何实现多线程?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt中如何实现多线程?相关的知识,希望对你有一定的参考价值。
函数A()每隔两秒执行一次,函数B()每隔三秒执行一次,函数C()每隔四秒执行一次,同时每个函数都能控制另外两个函数的开始与停止。该如何实现?
因为我是初学者,所以代码越简洁越少越好,不要出现无关代码。但讲解越详细越通俗易懂越好,最好每一行代码都解释一下。
首先server端用于监听的是一个socket,每次有传入连接,就会有一个新的socket描述符产生,与客户端交互就是通过这个socket描述符。
如果使用 QTcpServer,你应该重写 incomingConnection() 函数,该函数可以拿到 socket 描述符,然后你使用自定义事件将这个socket描述符传递给一个线程,在这个线程中使用这个socket描述符来与客户端通信。这就是“通知+多线程”的服务器编程模型,Qt 中天生支持这种模型,很容易实现。
Qt-不调用CoInitialize-实现SDL多线程运行
使用Qt开发程序,参考的MFC的程序中有CoInitialize。结果Qt程序调用不了,导致SDL不能音视频同步。此时SDL的初始化是放在主程序里的。
把SDL的初始化部分放到了辅助线程里,运行就正常了,还不需要CoInitialize。
用SDL作音视频同步及多线程,在Qt移植太麻烦了,最后还是使用VLC,接口好用。实现多路视频同步播放没有问题。
以上是关于qt中如何实现多线程?的主要内容,如果未能解决你的问题,请参考以下文章