Qt 中直接支持跨平台的多线程处理方案 QThread。既然涉及到了多线程,那么肯定就会遇到线程的同步问题。
什么是同步?让我们看一个例子。
老师让我用计算器计算从 0 累加到 1000 的值。于是我开始从零开始累加。。。。
可是我觉得太累了,为什么我不把这个问题拆成几个小任务来做呢,求 0 到 200 的和,求 201 到 400 的和,求 401 到 600 的和 ,求 601 到 800 的和 ,求 801 到 1000 的和。最后将所有和加起来。
于是我找了4个小伙伴,每人发一个计算器,一起帮我算数数。。。。
很显然,现实中这样做能提高我们的效率。在 Qt 中我们来模拟现实中的情况吧。上代码
class CalculateThread : public QThread
{
public:
CalculateThread(int start=0,int end=0)
{
m_sum = 0;
m_start = start>end?end:start;
m_end = start<end?end:start;
m_toStop = false;
}
void run()
{
msleep